0
votes

Ne peut pas effectuer cette action après OnSaveInstancestate à Android

Comment puis-je ajouter un chèque pour empêcher cette erreur

Je reçois l'erreur dans ce code: xxx

erreur sur la ligne: xxx

journal : xxx


3 commentaires

Où comptez-vous exactement ClearFraGmentsFromContainer () ? 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/... .


4 Réponses :


0
votes

Vous essayez de changer la pile de fragments après Onpause comme on peut le voir à partir du journal.

Vous pouvez soit utiliser fragmentmanger.commitaLowlowStateloss ou vous assurer de ne pas appeler cette méthode après OnAUSAUSE


2 commentaires

Pour toutes les transactions de fragment, j'utilise fragmentmanager.commiTalowstateloss


En général, c'est une mauvaise idée de l'utiliser. Vous devriez essayer de ne rien commettre après l'onpause



0
votes

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();
    }
}


0 commentaires

0
votes

Probablement votre transaction de fragment s'engage à commettre après onsavedInstancestate () 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 Vous devez comprendre si vous appelez votre ClearFraGmentsFromContainer à partir d'une méthode asynchrone, dans ce cas, vous devez probablement simplement déplacer votre transaction de la méthode ASYNC.

plus sur "Perte d'état de validation":


0 commentaires

0
votes

j'ai résolu ceci à l'aide du code xxx


0 commentaires