web-dev-qa-db-fra.com

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

Duplicate possible:
Cycle de vie de l'activité Android - différence entre onPause () et OnStop ()

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

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?

143
iTurki

Regardez 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 ici que vous devez effectuer toute votre configuration statique normale: 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é, le cas échéant. Toujours suivi de onStart ().

***onStart()***

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

Et vous pouvez écrire votre classe simple pour jeter un oeil lorsque 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 effacera votre confusion.

Et jetez un oeil ici pour plus de détails.

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

337
Pankaj Kumar

La méthode onCreate() est appelée lors de la création d'une activité et n'est appelée qu'une fois dans le cycle de vie complet de l'activité. où as onStart() est appelé lorsque l'activité est arrêtée ... Je veux dire qu'elle est passée en arrière-plan et que sa méthode onStop() est appelée par le système d'exploitation. onStart() peut être appelé plusieurs fois dans le cycle de vie de l'activité . Plus de détails ici

25
ngesh