2010-09-06 6 views
0

J'écris une application Android dans laquelle j'ai étendu la classe Application afin de contenir certaines variables globales. J'initialise ces variables globales dans mon activité racine (le premier écran que l'utilisateur voit).Android: Contexte de l'application, force l'intention de montrer au lancement

Mon application contient un certain nombre d'activités contenant ListViews plein d'éléments sélectionnables. Lorsque l'utilisateur sélectionne un élément, une nouvelle activité est poussée sur la pile d'affichage.

Maintenant, si un utilisateur est dans la 3ème ou la 4ème activité, puis qu'il appuie sur le bouton Accueil, mon application se cache. Si l'utilisateur force alors la fermeture de mon application (à l'aide d'un tueur de tâches), puis rouvre mon application, le contexte Application est initialisé et l'application démarre dans l'activité sur laquelle l'utilisateur se trouvait lorsqu'il cliquait sur le bouton Accueil. Mais le problème est qu'aucune de mes variables globales n'a été initialisée à ce stade puisque tout cela n'arrive que sur ma première activité.

Y a-t-il un moyen de forcer mon activité racine à toujours apparaître lorsque mon application arrive au premier plan, si l'objet Application n'a pas encore été initialisé?

+1

Wise Shepherd: Pourquoi ne pas "initialiser ces vars globaux" dans le 'Application' lui-même, dans' onCreate() '? – CommonsWare

+0

Désolé, j'aurais dû clarifier. Ces "vars globaux" sont initialisés en fonction de l'entrée de l'utilisateur. (La première activité affichée contient plusieurs champs pour que l'utilisateur entre des données avec lesquelles j'initialise un objet personnalisé.Les données de cet objet personnalisé sont ensuite utilisées dans toute l'application et je veux donc qu'il soit un "var global"). –

Répondre

1

Ce que vous pouvez faire est de vérifier si ces variables globales sont initialisées à vos activités onResume, et si ce n'est pas le cas, lancez le Activity principal.

Questions connexes