J'utilise une classe séparée avec seulement des champs statiques, pour stocker les données d'application actuelles. Il est partiellement rempli à partir de sharedpreferences
au démarrage de l'application. Le reste est des données comme les résultats de certaines actions, utilisées pour parcourir ces résultats (plusieurs activités qui utilisent les résultats).Android: Lorsque l'application a été tué, comment définir entrypoint pour le nouveau démarrage?
Je peux aller à l'écran d'accueil, démarrer d'autres applications, etc. et quand je retourne à ma propre application, cela fonctionne correctement.
Cependant, depuis la nouvelle fonctionnalité Error Reporting
, je reçois des rapports de bogues tous liés à une erreur nullreference
. L'objet null
est une référence au champ statique de la classe distincte mentionnée. Puisque je ne peux pas reproduire le bogue, je suis enclin à penser que cela est dû au fait que l'application a été détruite en raison de la mémoire insuffisante, et quand elle redémarre, elle appelle le oncreate
de l'activité dans laquelle l'utilisateur se trouvait. les données de la classe séparée ne sont pas restaurées et se bloquent donc.
Je voudrais savoir: existe-t-il un moyen de forcer l'application à "redémarrer" complètement, et ne pas commencer par la dernière activité utilisée si elle est tuée? Ou est ce comportement standard? Puis-je le faire par programme? Comme lorsque les champs statiques sont NULL, redémarrez l'application?
Très bien. On dirait une bonne solution. Pour l'instant j'utilise cependant la propriété 'android: clearTaskOnLaunch' sur la classe principale, donc elle lancera toujours cette activité et fera le rechargement. C'est moins joli, mais ça corrige le bug pour l'instant, j'espère. – Peterdk
Enfin est allé avec le stockage des valeurs statiques directement dans les préférences partagées, et lorsque les valeurs sont nulles, les récupérer de ces préférences partagées. Maintenant, tuer mon application ne la fait pas planter au redémarrage. – Peterdk