4 votes

Dois-je implémenter les méthodes onCreate(), onResume, etc dans chaque activité que j'écris?

J'ai commencé à explorer le monde Android il y a quelques jours seulement, et je le fais à travers le livre de Mario Zechner, "Beginning Android Games".

Je pourrais avoir une tonne de questions sur la plateforme et les quelques choses que j'ai vues jusqu'à présent, mais je sais que ça va s'améliorer. Tout ce que je veux demander pour le moment concerne les activités : j'ai vu le cycle de vie des activités. Je sais que les activités sont quelque chose comme des écrans. Ce que je ne sais pas, c'est si je dois spécifier les méthodes onCreate(), onResume(), etc. dans chaque activité que je code.

4voto

Rosalie Points 2438

À ma connaissance, onCreate() est obligatoire et les autres méthodes dépendent de la façon dont vous utilisez l'activité

1voto

Balaji Khadake Points 1778

Toute la durée de vie d'une activité se déroule entre le premier appel à onCreate(Bundle) et un dernier appel unique à onDestroy(). Une activité effectuera toute la configuration de l'état "global" dans onCreate(), et libérera toutes les ressources restantes dans onDestroy(). Donc, onCreate(Bundle) devrait être présent dans l'activité. L'utilisation de onResume() dépend des besoins de votre application. Pour plus de détails, consultez http://developer.android.com/reference/android/app/Activity.html

1voto

Otra Points 4346

Bienvenue dans le monde d'Android.

En général, il est recommandé de compléter toutes les méthodes telles que onPause(), onResume(), mais lorsque vous créez un programme Android, généralement vous avez seulement besoin de compléter la méthode onCreate() pour les activités.

À part onCreate, et veuillez m'excuser si mon vocabulaire n'est pas correct, les autres méthodes suivent un comportement "par défaut" si vous ne les remplacez pas. Donc, si vous avez besoin que l'application fasse quelque chose de spécifique lorsqu'elle est en pause, c'est le bon moment pour ajouter votre version de onPause(), sinon vous pouvez la laisser de côté.

0voto

Il n'est pas obligatoire de spécifier toutes ces méthodes ou aucune d'entre elles. Cela dépend du type d'implémentation que vous souhaitez

Exemple J'ai créé mon Activité (A) car elle étend Activity. Je ne remplace aucune méthode comme onCreate(), mais j'ai créé quelques variables et quelques méthodes. Supposons que j'ai créé une deuxième activité où je veux afficher une vue, j'ai utilisé la méthode onCreate(). Si je veux les variables et méthodes que j'ai définies dans l'activité A, je peux obtenir ces variables et méthodes en écrivant class B extends A

Il n'est donc pas obligatoire d'utiliser toutes ces méthodes de l'activité. Si vous ne créez pas votre propre implémentation, l'implémentation par défaut entrera en jeu.

0voto

barmaley Points 7307

La réponse courte sera NON

Vous n'avez pas besoin de spécifier dans le code de chaque Activité onCreate et ainsi de suite. De toute façon, dans l'Activité parent, il y aura onCreate

Mais la réponse longue dit : la bonne pratique ne consiste pas à se fier au code implicite/invisible, mais à avoir le contrôle sur le code (même s'il s'agit de code factice). Je codais toujours tous les onCreate/onDestroy, etc. de cette manière :

public static final boolean DEBUG=true;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    if(DEBUG)
        Log.d(TAG, "Création de "+this.toString());
}

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