2016-05-12 23 views
0

In meiner Übung A füge ich einige Fragmente hinzu (Standardfall). Ich habe in meinen Android-Telefoneinstellungen "Aktivitäten nicht beibehalten" überprüft, um das schlimmste Anwendungsverhalten zu simulieren.Android: Anleitung zum vollständigen Löschen von FragmentManager

Also, wenn diese Aktivität ein Neustart, ich tun, dass in onCreate() -Methode, die alle meine früheren Fragmente reinigen hinzugefügt:

FragmentManager fm = getSupportFragmentManager(); 
    List<Fragment> al = fm.getFragments(); 
    if (al != null) { 
     for (Fragment frag : al) { 
      if (frag != null) { 
       getSupportFragmentManager().beginTransaction().remove(frag).commit(); 
       fm.popBackStack(); 
      } 
     } 
    } 

Aber leider kann ich in den Protokollen, diese Art von Informationen sehen:

Successful to getNewsFeedInteractionsList() #2 
Successful to getNewsFeedInteractionsList() #2 
Successful to getNewsFeedUserList() #Suivis 
Successful to getNewsFeedUserList() #Populaire 
Successful to getNewsFeedUserList() #Populaire 
Successful to getNewsFeedUserList() #Suivis 

Sie können sehen, alle diese Fragmente erscheint zweimal ...

Vielen Dank für Ihre Hilfe!

Antwort

0

Beim Hinzufügen von Fragmenten können Sie Tags festlegen. Basierend auf diesen Tags behandeln Sie doppelte Addition in onCreate. Ebenso verwenden Sie savedBundle Instanz für Null überprüfen