2011-11-03 7 views
9

Come posso estrarre il frammento dal backstack senza riprenderlo? Voglio solo rimuovere dallo stack posteriore, non voglio visualizzarlo.Come posso estrarre il frammento dal backstack senza riprenderlo?

+0

Hai trovato una soluzione? Ho notato che la mia app si blocca a circa 140 frammenti nel backstack, quindi voglio iniziare a rimuovere quelli più vecchi a circa 100 frammenti ma non ho ancora trovato il modo di farlo. –

risposta

0

È una questione architettonica.

1) Supponiamo di disporre di 2 controller (frammenti/attività): controller A e controller B. Entrambi collegati a un'istanza di alcuni modelli (è possibile utilizzare l'associazione con servizio, modello Singleton o modello init in Application- erede di classe e ne fa un getter). Quando qualcosa di interessante accade nel controller B, notifica al modello e quindi chiama chiamate controllerA.finish()/controllerA.remove(). Certo, cerco sempre di implementare questa soluzione nel modo migliore possibile, ma c'è un'idea principale.

2) In altre circostanze, chiamo finish() immediatamente dopo startActivity (intent);

3) Inoltre, posso scrivere: startActivityForResult (intent, requestCode) e dopo aver terminato il metodo di seconda attività suActivityResult (requestCode, responseCode, intent) viene chiamato - se requestCode è uguale, termino l'attività.

+0

Il frammento non ha alcun metodo di finitura. –

+0

Si può inserire un semplice controllo a destra su onResume() o su onStart() - se è necessario rimuovere? – QuickNick

0

Se non si utilizza il metodo di FragmentTransaction
public abstract FragmentTransaction addToBackStack (String name)
per aggiungerlo allo stack posteriore. Non sarà necessario rimuoverlo.

+1

Ho bisogno di rimuovere frammenti specifici dallo stack posteriore. popBackStack non funziona poiché riprende il frammento specificato. –

+0

Quali sono i flag utilizzati in popBackStack. prova a utilizzare POP_BACK_STACK_INCLUSIVE. –

+0

Sì, ho usato questo flag. OnResume della voce backstack è ancora chiamato. –

Problemi correlati