Pourquoi est-ce que onResume () est invoqué après les méthodes onRestart () et onCreate () en excluant simplement onStart ()? Quel est son objectif?
OK, comme ma première réponse a été assez longue, je ne vais pas l'étendre davantage, alors essayons ceci ...
public DriveToWorkActivity extends Activity
implements onReachedGroceryStoreListener {
}
public GroceryStoreActivity extends Activity {}
VEUILLEZ NOTER: J'ai délibérément laissé de côté les appels à des choses comme super.onCreate(...)etc. C'est un pseudo-code alors donnez-moi une licence artistique ici. ;)
Les méthodes pour DriveToWorkActivitysuivre ...
protected void onCreate(...) {
openGarageDoor();
unlockCarAndGetIn();
closeCarDoorAndPutOnSeatBelt();
putKeyInIgnition();
}
protected void onStart() {
startEngine();
changeRadioStation();
switchOnLightsIfNeeded();
switchOnWipersIfNeeded();
}
protected void onResume() {
applyFootbrake();
releaseHandbrake();
putCarInGear();
drive();
}
protected void onPause() {
putCarInNeutral();
applyHandbrake();
}
protected void onStop() {
switchEveryThingOff();
turnOffEngine();
removeSeatBeltAndGetOutOfCar();
lockCar();
}
protected void onDestroy() {
enterOfficeBuilding();
}
protected void onReachedGroceryStore(...) {
Intent i = new Intent(ACTION_GET_GROCERIES, ..., this, GroceryStoreActivity.class);
}
protected void onRestart() {
unlockCarAndGetIn();
closeDoorAndPutOnSeatBelt();
putKeyInIgnition();
}
OK, donc c'est un autre long (désolé les gens). Mais voici mon explication ...
onResume()c'est quand je commence à conduire et onPause()c'est quand je m'arrête temporairement. Alors je roule puis j'atteins un feu rouge donc je m'arrête ... le feu passe au vert et je reprends. Encore un feu rouge et je m'arrête, puis vert donc je reprends. La onPause() -> onResume() -> onPause() -> onResume()boucle est serrée et se produit plusieurs fois au cours de mon voyage.
La boucle entre l'arrêt du retour par un redémarrage (se préparer à poursuivre mon voyage) et le redémarrage est peut-être moins courante. Dans un cas, je repère l'épicerie et le GroceryStoreActivitydémarre (me forçant DriveToWorkActivityau point de onStop()). Quand je reviens du magasin, je passe onRestart()et onStart()je reprends mon voyage.
Je pourrais mettre le code qui est onStart()dans les deux onCreate()et onRestart()sans prendre la peine de remplacer onStart()du tout, mais plus il y a de choses à faire entre onCreate() -> onResume()et onRestart() -> onResume(), plus je duplique les choses.
Alors, pour recommencer une fois de plus ...
Pourquoi est-ce que onResume () est invoqué après les méthodes onRestart () et onCreate () en excluant simplement onStart ()?
Si vous ne remplacez pas, onStart()c'est effectivement ce qui se passe. Bien que la onStart()méthode de Activitysoit appelée implicitement, l'effet dans votre code est effectivement onCreate() -> onResume()ou onRestart() -> onResume().