Je développe une application où une seule activité est instanciée plusieurs fois par elle-même. Je suppose que vous pourriez penser à un livre où chaque activité est une page. A la fin de la page (activité), l'utilisateur appuie sur un bouton pour accéder à une nouvelle page. Je déclenche une Intention pour la même activité, mais je pousse différentes données dans le Bundle afin qu'une page différente soit chargée.Y a-t-il quelque chose que je dois prendre en compte lorsque je répète plusieurs fois la même activité?
Cela fonctionne bien, et j'aime le fait que l'utilisateur peut sauvegarder à un point précédent, mais ma question est de savoir si cela va éventuellement être un problème? Que se passe-t-il si cette activité est instanciée 10 fois, 50 ou 100? L'appareil va-t-il manquer de mémoire, le GC viendra-t-il nettoyer les vieilles activités, ou quoi?
Si GC les nettoie, que se passe-t-il lorsque l'utilisateur appuie sur Retour et que l'activité précédente n'est plus dans la pile? Est-il préférable de suivre le chemin de l'utilisateur, de terminer() l'activité et de remplacer le bouton Précédent pour que l'utilisateur avance ou recule, je ne charge qu'une seule activité? Une autre approche que je pourrais prendre est de rafraîchir toutes les données sur la page afin que ce soit toujours la même activité, mais avec de nouvelles données. Le bouton Précédent ne fonctionnerait pas comme prévu dans ce cas.
Pensées?
Merci, James. Oui, j'ai réfléchi à ce que vous suggérez - en rafraîchissant simplement les données sur la même page. Ensuite, je dois remplacer le bouton Précédent et actualiser la page précédente si elle est pressée. Je pense que je peux utiliser votre deuxième suggestion - sauvegarder mon état dans onPause, et le restaurer dans onResume. Dans mon cas, "state" est simplement une valeur clé de toute façon, c'est super facile. De cette façon, le bouton Back fonctionne toujours sans travail supplémentaire de ma part, et je m'en ficherai si Android tue l'une de mes activités précédentes. – RMS2