Méthodes d'activité: onCreate() et onDestroy()

Quand une activité est créée pour la première fois, le système appelle le OnContentChanged() la méthode comme première méthode et dernier appel par le système est le OnDetachedFromWindow() méthode quand une activité est tuée, mais android docs dit que toute la vie d'une activité se passe entre OnCreate() et OnDestroy(). Pourquoi? Aidez-moi à comprendre la différence entre ces méthodes.

Code:

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.widget.Toast;

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

    @Override
    public void onContentChanged() {
        super.onContentChanged();   
        Toast.makeText(getApplicationContext(),"1. onContentChanged()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Toast.makeText(getApplicationContext(),"2. onCreate()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onStart() {
        super.onStart();
        Toast.makeText(getApplicationContext(),"3. onStart()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRestoreInstanceState(Bundle restoreInstanceState) {
        Toast.makeText(getApplicationContext(),"4. onRestoreinstaneState()", Toast.LENGTH_SHORT).show();
        super.onRestoreInstanceState(restoreInstanceState);
    }

    @Override
    public void onRestart() {
        super.onRestart();
        Toast.makeText(getApplicationContext(),"5. onRestart()", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onPostCreate(Bundle onpostcrete) {
        super.onPostCreate(onpostcrete);
        Toast.makeText(getApplicationContext(),"6. onPostCreate()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onResume() {
        super.onResume();
        Toast.makeText(getApplicationContext(),"7. onResume()", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onPostResume() {
        super.onPostResume();
        Toast.makeText(getApplicationContext(),"8. onPostResume()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        Toast.makeText(getApplicationContext(),"9. onAttachedToWindow()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onWindowFocusChanged(boolean bo) {
        super.onWindowFocusChanged(true);
        Toast.makeText(getApplicationContext(),"10. onWindowFocusChanged()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUserLeaveHint() {
        super.onUserLeaveHint();
        Toast.makeText(getApplicationContext(),"11. onUserLeaveHint()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUserInteraction() {
        super.onUserInteraction();
        ii=0;
        Toast.makeText(getApplicationContext(),"12. onUserInteraction()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        Toast.makeText(getApplicationContext(),"13. onSaveInstanceState()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPause() {
        super.onPause();
        Toast.makeText(getApplicationContext(),"14. onPause()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onStop() {
        super.onStop();
        Toast.makeText(getApplicationContext(),"15. onStop()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(getApplicationContext(),"16. onDestroy()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        Toast.makeText(getApplicationContext(),"17. onDetachedFromWindow()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Toast.makeText(getApplicationContext(),"18. onConfigurationChanged()", Toast.LENGTH_SHORT).show();
    }

    @Override
    public boolean onSearchRequested() {
        super.onSearchRequested();
        Toast.makeText(getApplicationContext(),"19. onSearchRequested()", Toast.LENGTH_SHORT).show();
        return false;
    }
}

Dans ce code, onContentChanged() avant onCreate() méthode et onDetachedFromWindow() est appelée après onDestroy(). Pourquoi?

18
demandé sur Melquiades 2012-03-04 16:34:03

2 réponses

onCreate ():

Quand l'activité commence sa vie onCreate() est appelée. Il est appelé qu'une seule fois dans le cycle de vie d'une activité.

onDestroy ():

onDestroy() est appelé lorsqu'une activité termine son cycle de vie. Il est également appelé une fois dans le cycle de vie d'une activité.

onContentChanged ():

ce crochet est appelé chaque fois que la vue de contenu de l'écran change (en raison d'un appel à Window.setContentView ou Window.addContentView). Par exemple, vous ajoutez new view à activity ou vous voulez rafraîchir la liste en appelant notifyDataSetChanged().

onDetachedFromWindow ():

appelé lorsque la fenêtre principale associée à l'activité a été détachée du gestionnaire de fenêtres. Par exemple, il est appelé lorsque L'activité courante passe en arrière-plan ou une autre activité est venue en avant de l'activité courante.

20
répondu Muhammad Nabeel Arif 2012-03-04 12:59:41

http://developer.android.com/reference/android/app/Activity.html#onContentChanged%28%29

onontentchanged () ne sera pas appelé la première fois que l'actiivity est visible à l'utilisateur.

il sera appelé,disons quand l'utilisateur change d'orientation du mobile..ou d'autres configurations..

1
répondu Rahul garg 2012-03-04 12:59:21