2013-09-30 3 views
2

J'ai une activité qui crée un objet statique et crée ensuite une nouvelle activité. La deuxième activité accède à l'objet statique dans sa méthode onCreate(). Lorsqu'il est exécuté normalement, tout va bien et dandy mais si l'utilisateur quitte l'application lorsqu'il est dans la deuxième activité et continue ensuite avec d'autres tâches consommatrices de mémoire qui tuent l'application (comme indiqué sur le côté gauche du cycle de vie de l'application) , puis lors de la réouverture de l'application, elle est recréée à la deuxième activité, mais l'objet statique d'origine ne persiste pas. Cela provoque une exception de point null dans la méthode onCreate(). Évidemment, je peux mettre l'objet statique dans le bundle de sauvegarde et le remettre en utilisant savedInstanceState mais je voulais savoir comment répliquer facilement en créant une application pas sur l'activité de démarrage car le système d'exploitation peut prendre un certain temps pour la tuer en raison de problèmes de consommation de mémoire.Comment tester le cycle de vie de mon application Android?

http://developer.android.com/reference/android/app/Activity.html

Répondre

2

Une façon relativement simple à tester serait d'envoyer simplement le dispositif d'intention de lancer votre deuxième activité.

Vous pouvez le faire en utilisant la commande comme si le directeur de l'activité de la BAD (h):

adb shell am start -n your.package.name/.YourActivity

Cela lancera votre deuxième activité et l'application sera dans un état similaire comme si Android avait récupéré la mémoire votre application utilisait

Notez que vous devrez définir votre activité à exporter dans votre manifeste pour que cela fonctionne, et vous devez vous assurer de le modifier une fois que vous avez terminé le débogage. Vous pouvez définir l'activité comme exportée comme suit:

<activity 
    ... 
    android:exported="true" > 
</activity> 
+0

Je reçois l'autorisation refusée lorsque j'effectue cette opération. Je suis capable de commencer ma première activité de cette façon mais pas ma seconde. Il donne des erreurs et le refus de permission. –

+0

Ah oui, votre activité doit être définie comme exportée pour que cela fonctionne. J'ai mis à jour ma réponse. –

+0

Merci! Cela marche! –