145 votes

Différence entre onCreate() et onStart() ?

Duplicata possible :
Cycle de vie des activités Android - différence entre onPause() et OnStop()

Je me demandais quelle est la différence entre onCreate() y onStart() méthodes ?

Je pense que onStart() est une méthode redondante. onCreate() sera TOUJOURS appelé (au moins dans mes deux derniers projets).

Quelqu'un peut-il expliquer la différence ?

342voto

Pankaj Kumar Points 19620

Jetez un coup d'œil sur le cycle de vie de l'activité enter image description here

***onCreate()***

Appelé lorsque l'activité est créée pour la première fois. C'est à ce moment-là que vous devez effectuer toutes les configurations statiques habituelles : créer des vues, lier des données à des listes, etc. Cette méthode vous fournit également un Bundle contenant l'état précédemment gelé de l'activité, s'il y en avait un. Toujours suivie de onStart().

***onStart()***

Appelé lorsque l'activité devient visible pour l'utilisateur. Suivi par onResume() si l'activité passe au premier plan, ou onStop() si elle devient cachée.

Et vous pouvez écrire votre classe simple pour regarder quand ces méthodes appellent

public class TestActivity extends Activity {
    /** Called when the activity is first created. */

    private final static String TAG = "TestActivity";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.i(TAG, "On Create .....");
    }
    /* (non-Javadoc)
    * @see android.app.Activity#onDestroy()
    */
    @Override
    protected void onDestroy() { 
        super.onDestroy();
        Log.i(TAG, "On Destroy .....");
    }
    /* (non-Javadoc)
    * @see android.app.Activity#onPause()
    */
    @Override
    protected void onPause() { 
        super.onPause();
        Log.i(TAG, "On Pause .....");
    }

    /* (non-Javadoc)
    * @see android.app.Activity#onRestart()
    */
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(TAG, "On Restart .....");
    }

    /* (non-Javadoc)
    * @see android.app.Activity#onResume()
    */
    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG, "On Resume .....");
    }

    /* (non-Javadoc)
    * @see android.app.Activity#onStart()
    */
    @Override
    protected void onStart() {
        super.onStart();
        Log.i(TAG, "On Start .....");
    }
    /* (non-Javadoc)
    * @see android.app.Activity#onStop()
    */
    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG, "On Stop .....");
    }
}

J'espère que cela dissipera votre confusion.

Et jetez un coup d'oeil aquí pour les détails.

Les méthodes du cycle de vie en détail est un très bon exemple et une application de démonstration, qui constitue un très bon article pour comprendre le cycle de vie.

26voto

ngesh Points 8686

onCreate() est appelée lorsque l'activité est créée, et elle n'est appelée qu'une seule fois dans tout le cycle de vie de l'activité. où comme onStart() est appelé lorsque l'activité est arrêtée... Je veux dire qu'il est passé en arrière-plan et que son onStop() est appelée par l'OS. onStart() peut être appelé plusieurs fois dans le cycle de vie de l'activité. Plus de détails ici

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