Per questo compito ...
0) Avvio di nuova attività
ho letto ancora una volta sulla questione, e capito che si bisogno di consigli per iniziare l'attività. Quindi, iniziando una nuova attività è Ok, il tuo problema principale sarà con un'altra cosa (vedi sotto).
Ma parliamo di avviare un altro dato. L'utilizzo di Fragment invece non risolve il tuo compito, i frammenti aiutano con il lavoro sullo schermo diverso. Usando ad esempio solo l'aggiornamento dei dati come variante.È possibile utilizzare solo una singola attività e aggiornare solo i dati, sembrerà molto meglio, se si aggiunge anche l'animazione, ma non meglio di avviare l'attività.
L'utilizzo di Fragment consente di eseguire diverse azioni sullo schermo. E forse, rispondendo alla tua domanda, sarà la soluzione più adatta . Devi solo usare l'acidità singola - PostActivity e diversi frammenti - FragmentMainPost, FragmentRelated - che saranno sostituiti, l'un l'altro, selezionando dal post correlato.
1) Problemi di tornare indietro
lascia immaginare, che gli utenti fa clic per nuova attività e siamo caricati nuovi dati. Va bene, e quando gli utenti fanno clic su oltre 100 attività e ricevono molte informazioni. Va bene, anche. Ma la domanda principale qui sta tornando indietro (anche un'altra sulla cache, ma lasciamo, per ora).
Così tutti sanno, è una cattiva idea salvare un sacco di attività in pila. Quindi per ogni mia applicazione, con comportamenti simili, sovrascriviamo suBackPressed in questa attività. Ma come, permette di vedere il flusso di seguito:
//Activities most have some unique ID for saving, for ex, post number.
//Users clicks to 100 new activities, just start as new activity, and
//finish previous, via method, or setting parameter for activity in AndroidManifest
<activity
noHistory=true>
</activity>
....
//When activity loaded, save it's activity data, for ex, number of post
//in some special place, for example to our Application. So as a result
//we load new activity and save information about it to list
....
// User now want return back. We don't save all stack this activities,
// so all is Ok. When User pressing back, we start action for loading
//activities, saved on our list..
.....
onBackPressed() {
//Getting unique list
LinkedTreeSet<PostID> postList =
getMyApplication().getListOfHistory();
//Getting previous Post ID based on current
PostID previousPostID = postList.get(getCurrentPost());
//Start new activity with parameter (just for ex)
startActivity(new Intent().putExtra(previousPostID));
}
RISULTATO
Ho trovato questo come la migliore soluzione per questi compiti. Perché in ogni momento - lavoriamo solo con una singola attività!
Se fossi in te io uso il frammento. perché in genere la pagina dei dettagli viene ripetuta in diverse parti dell'applicazione, in modo da migliorare la riusabilità del codice. – Amir
@Amir Yep! cosa sto considerando ora, è quello di creare un'attività denominata 'PostActivity' che contiene' PostFragment' e quindi creare un'interfaccia per sostituire il frammento per l'attività. Qual è la tua idea al riguardo? – MAY3AM
Sì, questo è un buon modo. Ma non capisco perché hai bisogno di un'interfaccia? – Amir