2011-12-18 12 views
9

In iOS, posso scrivere un'intera applicazione utilizzando un singolo UIViewController e semplicemente aggiungendo l'intera applicazione all'interno di una gerarchia di UIView. Funziona come OK quando UIViewController riceve una notifica quando la situazione della memoria non è buona e consente allo sviluppatore di eseguire una gestione/ottimizzazione della memoria manuale.Applicazione Android basata su singola attività, più frammenti

Esiste un equivalente in Android?
Potrei scrivere un'intera applicazione in una singola attività e impilare frammenti sopra questo?
Quali implicazioni avrebbe questo sull'utilizzo della memoria, per quanto ho capito, questo di aggira la gestione del ciclo di vita delle attività e l'intera pila di frammenti rimarrebbe in memoria - o sbaglio?

risposta

4

Esiste un equivalente in Android?

Non da un punto di vista della gestione della memoria. Non viene esplicitamente detto di spazio ridotto nell'heap. L'uso di cose come SoftReference può aiutare, ma è più a livello di macchina virtuale.

Potrei scrivere un'intera applicazione in una singola attività e impilare i frammenti sopra questo?

Se si desidera, sì.

Quali implicazioni avrebbe questo sull'utilizzo della memoria, per quanto ho capito, questo di aggira la gestione del ciclo di vita delle attività e l'intera pila di frammenti rimarrebbe in memoria - o sbaglio?

"l'intera pila di frammenti" sarebbe in memoria indipendentemente dal fatto che siano ospitati da 1 attività o da N attività.

+1

Se sono ospitati da attività N, quindi faranno parte della gestione del ciclo di vita dell'attività. Se sono tutti in una singola vista, ciò non significa che la singola attività è sempre in memoria con tutti i suoi frammenti in quanto è l'unica visibile – user204884

+3

@ user204884: Le attività lasciano solo la memoria se le hai manualmente 'finish()' loro, oppure se l'utente preme INDIETRO (e consente l'elaborazione normale del pulsante INDIETRO), oppure il processo viene interrotto. Quindi, per impostazione predefinita, avere 1 attività e avere attività N può avere lo stesso footprint di memoria rispetto ai frammenti. Avere N attività * può * avere un minore ingombro di memoria, ma non è garantito. Le mie scuse per non averlo chiarito nella mia risposta. – CommonsWare

+1

@CommonsWare Accetto la risposta, ma come rimuovere tutti i frammenti alla volta insieme a Attività che li trattiene per cancellare la memoria. Si cancellerà immediatamente la memoria o ci vorrà del tempo. – TNR

Problemi correlati