2010-08-09 7 views
1

J'ai rencontré un problème wile en utilisant ma propre sous-classe de android.app.Application. J'ai de nombreuses activités dans mon application et je cours une ROM personnalisée qui consomme beaucoup de mémoire. Ce qui se passe est quand je lance une activité de tiers (caméra) mon application est tuée. Ma sous-classe Application stocke des données vitales pour l'ensemble de l'application afin qu'elle ne puisse pas fonctionner sans elle. android.app.Application n'a aucune méthode pour enregistrer ou restaurer l'état de l'application. L'activité les a mais ils ne sont pas adaptés.Enregistrer android.app.Application état

Tout devine comment effectuer un enregistrement/restauration d'état sur une sous-classe d'application?

MISE À JOUR J'ai réussi à le faire en remplissant un Bundle obtenu à partir onSaveInstanceState et la restauration des valeurs dans onCreate. Mais y a-t-il un meilleur moyen?

Répondre

0

Selon http://developer.android.com/guide/topics/fundamentals.html

en référence à onCreate()

Appelé lorsque l'activité est créée. C'est ici que vous devez effectuer toutes vos configurations statiques normales: créer des vues, lier des données à des listes, etc. Cette méthode transmet un objet Bundle contenant l'état précédent de l'activité, si cet état a été capturé (voir Enregistrement de l'état de l'activité, plus loin). Toujours suivi par onStart().

en référence à onPause()

Appelée lorsque le système est sur le point de commencer à reprendre une autre activité. Cette méthode est généralement utilisée pour valider des modifications non enregistrées dans des données persistantes, arrêter des animations et d'autres éléments susceptibles de consommer du processeur, et ainsi de suite. Il devrait faire tout ce qu'il fait très rapidement, car l'activité suivante ne sera pas reprise avant son retour. Suivie par onResume() si l'activité revient au premier plan, ou par onStop() si elle devient invisible pour l'utilisateur.

En utilisant les objets Bundle sont la façon dont vous êtes censé enregistrer votre état dans le cas où la demande est tué. La méthode onPause() est censée être un signal à votre application qu'elle est maintenant dans un état où elle pourrait être tuée pour récupérer des ressources. La méthode onCreate() est transmise à un ensemble afin qu'il puisse reprendre là où l'application s'était arrêtée auparavant pour fournir une expérience utilisateur transparente tout en permettant au système de tuer l'application lorsqu'elle a besoin de ressources.

+0

'android.app.Application' n'est pas une' Activity'. – Macarse