Comment puis-je ajouter un chèque pour empêcher cette erreur p>
Je reçois l'erreur dans ce code: strong> p> xxx pré>
erreur sur la ligne: strong> p> xxx pré> journal strong>: p>
xxx pré> blockQquote>
4 Réponses :
Vous essayez de changer la pile de fragments après Vous pouvez soit utiliser Onpause code> comme on peut le voir à partir du journal. P>
fragmentmanger.commitaLowlowStateloss CODE> ou vous assurer de ne pas appeler cette méthode après OnAUSAUSE CODE> P>
Pour toutes les transactions de fragment, j'utilise fragmentmanager.commiTalowstateloss code>
En général, c'est une mauvaise idée de l'utiliser. Vous devriez essayer de ne rien commettre après l'onpause
Pour supprimer tous les fragments d'un conteneur, veuillez utiliser le code ci-dessous
for (Fragment fragment:getSupportFragmentManager().getFragments()) {
if (fragment instanceof NavigationDrawerFragment) {
continue;
}
else if (fragment!=null) {
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
}
}
Probablement votre transaction de fragment s'engage à commettre plus sur "Perte d'état de validation": P> Pour comprendre si votre activité a déjà appelé méthode OnSaveInstanCestate (), vous pouvez penser à placer un drapeau à l'intérieur du rappel OnsaveInstancesTate, réinitialisant le drapeau dans la double méthode OnrestoreInstancestate, quelque chose du genre: P> < Pré> xxx pré> alors vous pouvez vérifier le drapeau avant d'appeler onsavedInstancestate () code> rappel. Cela signifie que votre activité arrête et que vous ajoutez votre fragment dans un état qui ne peut pas être enregistré. En réalité, lors de l'appel à ONSAVEDInstancesTate (), l'appel d'Android prend un instantané de votre état d'activité, cela signifie que si vous commettez une transaction après l'état de l'état, la transaction ne sera pas mémorisée car elle n'a jamais été enregistrée. Du point de vue de l'utilisateur qui entraînera une perte d'état de l'UI.
Au lieu d'utiliser Entrée de prisonnierStateloss Code> Vous devez comprendre si vous appelez votre ClearFraGmentsFromContainer code> à partir d'une méthode asynchrone, dans ce cas, vous devez probablement simplement déplacer votre transaction de la méthode ASYNC.
ClearFraGmentsFromContainer code> P> P> P>
Où comptez-vous exactement
ClearFraGmentsFromContainer () Code>? Ajouter du code pour appeler.J'ai chargé 5 fragments dans un conteneur. J'essaie d'appeler cette méthode d'activité pour effacer tous les fragments de conteneur avant de commencer un nouveau fragment
J'ai demandé où vous appelez cette méthode pas pourquoi vous l'appelez. Ajouter du code .. Voir Stackoverflow.com/Questtions/7575921/... .