Android - begrenzen Sie die Anzahl der Fragmente im backStack?

Derzeit habe ich eine Tätigkeit, und Fragmente eingefügt werden (Suche, Lied, details, Einstellungen, etc). Implementiert habe ich die Seite basierte Menüführung, also jetzt, als Nebeneffekt, tehre ist kein limit, wie viele Fragmente erhalten, Hinzugefügt, um den Backstack. Gibt es eine Möglichkeit, ich kann das begrenzen der Anzahl der Fragmente, oder entfernen Sie ältere Einträge? Jeder song details fragment zum Beispiel, hat einen empfohlenen song-Liste, und durch die Sie gehen Sie zu einem anderen song-details-fragment. Es ist leicht möglich, 30-Fragmente in den backstack, die, wenn Sie DDMS öffnen, sehen Sie die heap-Größe wird langsam (aber sicher) wächst.

Edit: Eine Sache, die ich wollte versuchen zu tun ist, wenn ein Benutzer auf einen der seitlichen Menü-Optionen, wenn das fragment ist bereits in den backstack versuchen, gehen Sie zurück zu diesem fragment anstelle der Instanziierung eine neue, aber natürlich, wenn ein Benutzer auf eine Song-Details-Seite, dann würde er erwarten, dass Sie "back" drücken würde, ihn zu ergreifen, um das Fragment, so dass wird nicht funktionieren.

Edit 2:
Dies ist mein addFragment Methode (zusammen mit Phil ' s Vorschlag):

public void addFragment(Fragment fragment) { 

        FragmentManager fm = getSupportFragmentManager();
        if(fm.getBackStackEntryCount() > 2) {

              fm.popBackStack();
            }
        fm.beginTransaction()                 
                  .replace(R.id.fragment_container, fragment).addToBackStack("")
                  .commit();
}

Ich habe es gerade ausprobiert, und vorausgesetzt, dass mein Fragment der Geschichte ist: Ein->B->C->D, zurück aus D, B geht->A->beenden.

Ich ging nur 8 Ebenen tief zu testen: Ein->B->C->D->E->F->G>H, und geht wieder aus H, passiert dasselbe: H->B->A->beenden.

Alle Fragmente werden immer Hinzugefügt, dass die oben genannte Methode. Was ich gern sehen würde ist: H->G>F->beenden.

Schreibe einen Kommentar