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?
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.
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..