2010-12-13 75 views
1

J'ai besoin d'obtenir l'état dont l'activité vient de sortir, par exemple, j'ai besoin d'exécuter du code dans mon onResume(), mais seulement après l'appel de onPause() et pas après Start().Android, obtenir l'état précédent de l'activité?

Si onResume() est appelé après onStop(), j'ai besoin d'exécuter du code différent.

Comment dois-je vérifier correctement cela?

Répondre

1

Here est le cycle de vie. Je pense que vous pouvez enregistrer un drapeau dans vos préférences et le vérifier pendant onResume. Voici quelques pseudo-code:

onStart() { 
    saveFlagToPreferences(false); 
} 

onResume() { 
    boolean doStuff = getFlagFromPrefs(); 
    if (doStuff) { 
     //do some stuff following onPause 
    } else { 
     //do some stuff following onStop 
    } 
} 

onPause() { 
    saveFlagToPreferences(true); 
} 

onStop() { 
    saveFlagToPreferences(false); 
} 

Pour charger les préférences que vous pouvez utiliser quelque chose comme:

SharedPreferences settings = getSharedPreferences("MyAppName",0); 
settings.getBoolean("flag", true); 

Et pour les sauver:

SharedPreferences settings = getSharedPreferences("MyAppName",0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putBoolean("flag",true); 
editor.commit(); 
+0

Merci, je vais mettre en œuvre demain et laissez-moi savoir comment je m'entends. – Hamid

+0

Je ne l'ai pas fait de cette façon, en fait j'ai simplement utilisé une variable globale et mon onpause a défini le booléen, auquel cas il serait faux au démarrage et à la reprise si onpause n'avait pas déjà été appelé. Je ne sais pas quelle est la meilleure solution, mais la mienne fonctionne bien. – Hamid