Dans mon activité principale, sous onStop, j'ai défini myVar = true. Dans onResume, je vérifie si myVar = true et fais quelque chose.onStop n'est pas appelé ... Bouton Accueil appuyé
Si vous appuyez sur le bouton principal pendant que vous effectuez l'activité principale et que vous le lancez à nouveau depuis l'écran d'accueil/le tiroir de l'application, cela fonctionne correctement. Si vous appuyez sur le bouton principal lors d'une autre activité et que vous le lancez à nouveau depuis l'écran d'accueil/le tiroir d'applications, l'activité principale apparaît: clearTaskOnLaunch = "true" défini sur mon activité principale android: finishOnTaskLaunch = "true" sur mes autres activités. Cependant, il ne semble pas qu'il ait été activé dans l'activité principale lorsque le bouton Accueil a été enfoncé.
Je commence les autres activités pour résultat. Si le code de résultat = result_ok ou result_canceled, je mets myVar = false. Mais ... si le bouton d'accueil est pressé, il ne devrait pas être en train de définir les résultats et de faire le onActivityResult.
Une idée de comment résoudre ce problème?
Edit:
above onCreate.. I set startNew = true;
@Override
public void onStop() {
super.onStop();
startNew = true;
}
@Override
public void onRestart() {
super.onRestart();
if (startNew) {
getCurrentDate(0);
updateDisplay();
fillData();
}
}
La seule autre référence à startNew, est dans ma méthode de onActivityResult, si une activité qui a été lancé à partir de mon activité principale renvoie soit RESULT_OK ou result_canceled, je mis startNew = false. J'essaie de m'assurer que chaque fois que mon application est lancée depuis l'écran d'accueil/le tiroir de l'application, elle exécute ces 3 méthodes.
Je l'ai changé pour être sûr, mais je n'ai jamais remarqué une différence entre les deux avec ce que je l'utilise. – Roger
Selon la documentation, il n'est pas garanti que l'onStop() soit appelé, mais onPause() l'est. A partir de Honeycomb, cela change ... onStop() sera désormais garanti, mais si vous voulez supporter des périphériques qui exécutent une version antérieure, vous devez coder en conséquence: http://developer.android.com/reference/android/app /Activity.html – BonanzaDriver
Par * what * documentation? –