95 votes

Comment utiliser onResume() ?

Quelqu'un peut-il me donner un exemple qui utilise onResume() dans Android ?

De même, si je veux relancer l'activité à la fin de l'exécution d'une autre, quelle méthode est exécutée ? onCreate() o onResume() ?

Et si je veux mettre à jour des données, comment le faire dans onResume()?

141voto

Mr.Sandy Points 1365

Toute activité qui redémarre a son onResume() exécuté en premier.

Pour utiliser cette méthode, procédez comme suit :

@Override
public void onResume(){
    super.onResume();
    // put your code here...

}

84voto

Viswanath L Points 3173

Le redémarrage de l'application appelle OnCreate() .

La poursuite de l'application lorsqu'elle est en pause appellera OnResume() . Extrait de la documentation officielle à l'adresse https://developer.Android.com/reference/Android/app/Activity.html#ActivityLifecycle Voici un diagramme du cycle de vie d'une activité.

the Android activity lifecycle, from https://developer.android.com/images/activity_lifecycle.png on https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

29voto

noob Points 3962

La meilleure façon de comprendre serait d'avoir toutes les méthodes LifeCycle surchargées dans votre activité et de placer un point d'arrêt (si vous vérifiez dans l'émulateur) ou un journal dans chacune d'elles. Vous saurez ainsi laquelle est appelée et à quel moment.

Juste comme un spoiler, onCreate() est appelé en premier, puis si vous avez mis en pause l'activité en allant sur l'écran d'accueil ou en lançant une autre activité, onPause() est appelé. Si le système d'exploitation détruit l'activité entre-temps, onDestroy() est appelé. Si vous reprenez l'application et que l'application a déjà été détruite, onCreate() sera appelé, ou sinon onResume() sera appelé.

Edit : J'ai oublié onStop() il est appelé avant onDestroy() .

Faites l'exercice que j'ai mentionné et vous aurez une meilleure compréhension.

9voto

codeMagic Points 27151

La plupart des réponses précédentes expliquent bien comment, pourquoi, et quand utiliser onResume() mais je voudrais ajouter quelque chose à propos de la recréation de votre Activity .

Je veux savoir si je veux relancer l'activité à la fin de l'exécution d'une autre méthode qui est exécutée onCreate() ou onResume().

La réponse est onCreate() Cependant, lorsque vous décidez de le recréer, vous devez vous demander quelle part de l'histoire de l'entreprise a été conservée. Activity doit être recréé. S'il s'agit de données dans un adaptateur, par exemple pour une liste, alors vous pouvez appeler notifyDataChanged() sur le adapter pour repeupler le adapter et ne pas avoir à tout redessiner.

De même, si vous avez juste besoin de mettre à jour certaines views mais pas tous, alors il peut être plus efficace d'appeler invalidate() sur le view (s) qui doivent être mis à jour. Cela ne redessinera que les views et peut-être permettre à votre application de fonctionner plus facilement. J'espère que cela pourra vous aider.

9voto

Lorsque vous ouvrez l'application, elle passe par les états suivants : onCreate() -> onStart() -> onResume()

Lorsque vous appuyez sur le bouton retour et quittez l'application.

onPaused() - > onStop() -> onDestory()

Lorsque vous appuyez sur le bouton d'accueil

onPaused() -> onStop()

Après avoir appuyé sur le bouton d'accueil, à nouveau lorsque vous ouvrez l'application à partir d'une liste de tâches récentes.

onRestart() -> onStart() -> onResume()

Après avoir quitté la boîte de dialogue ou le bouton retour de la boîte de dialogue

onResume()

Si un téléphone sonne et que l'utilisateur utilise l'application

onPause() -> onResume()

Après la fin de l'appel

onResume()

Lorsque l'écran de votre téléphone est éteint

onPaused() -> onStop()

Lorsque l'écran de votre téléphone est rallumé

onRestart() -> onStart() -> onResume()

Joyeux codage...@Ambilpura

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X