Activity生命周期总结
2011-12-12 14:11
162 查看
当Activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理,当前活动的Activity位于栈顶。随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。
Activity大致分为四个状态:
活动状态:当前Activity位于前台,用户可见,可以获得焦点
暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点
停止状态:该Activity不可见,失去焦点 。
销毁状态:该Activity结束,或Activity所在的Dalvik进程被结束
如图显示了Activity生命周期:
在Activity的生命周期中,如下方法会被系统回调。
onCreate(BundlesavedStatus):创建Activity时被回调。
onStart():启动Activity时被回调。
onRestart():重新启动Activity时被回调。
onResume():恢复Activity时被回调。
onPause():暂停Activity时被回调
onStop():停止Activity时被回调
onDestroy():销毁Activity时被回调。
package cn.class3g.activity;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.app.AlertDialog.Builder;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
public classActivityLifeCydeActivity extends Activity {
private static final String TAG ="lifeCycle";
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "onCreate");
}
protected void onStart() {
super.onStart();
Log.i(TAG, "onStart");
}
protected void onResume() {
super.onResume();
Log.i(TAG, "onResume");
}
protected void onPause() {
super.onPause();
Log.i(TAG, "onPause");
}
protected void onStop() {
super.onStop();
Log.i(TAG, "onStop");
}
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart");
}
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "onDestory");
}
}
1、运行activity时:
onCreate ----- onStart ---- onResume
2、点返回键
onPause ---- onStop ----- onDestory
3、点击Home
onPause ---- onStop
4.长按Home重新回到ActivityLifeCydeActivity
onRestart ---- onStart ---- onResume
5.切换至SecondActivity之上
onPause ---- onStop
6.切换回 ActivityLifeCydeActivity
onRestart ---- onStart ---- onResume
创建一个对话框样式的activity:DialogActivity
7.切换至DialogActivity
onPause
8.按返回键返回至ActivityLifeCydeActivity
onResume
创建AlertDialog对话框
显示对话框并返回,发现此时并不能触发ActivityLifeCydeActivity实例的状态变化,也就不会调用其生命周期中任何函数
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG, "onRestoreInstanceState()");
}
protected void onSaveInstanceState(BundleoutState) {
super.onSaveInstanceState(outState);
Log.i(TAG, "onSaveInstanceState()");
}
1. 运行
2. 按Home
onSaveInstanceState --- onPause ---- onStop
3. 在桌面,长按Home重新回到ActivityLifeCydeActivity
onRestart ----onStart ---- onResume
此时并没有触发onRestoreInstanceState()
总结:
Activity 从创建到进入运行态所触发的事件
onCreate()-->onStart-->onResume()
从运行态到停止态所触发的事件
onPause()--->onStop()
从停止态到运行态所触发事件
onRestart()-->onStart()--->onResume()
从运行态到暂停态所触发事件
onPause()
从暂停态到运行态所触发事件
onResume()
Activity大致分为四个状态:
活动状态:当前Activity位于前台,用户可见,可以获得焦点
暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点
停止状态:该Activity不可见,失去焦点 。
销毁状态:该Activity结束,或Activity所在的Dalvik进程被结束
如图显示了Activity生命周期:
在Activity的生命周期中,如下方法会被系统回调。
onCreate(BundlesavedStatus):创建Activity时被回调。
onStart():启动Activity时被回调。
onRestart():重新启动Activity时被回调。
onResume():恢复Activity时被回调。
onPause():暂停Activity时被回调
onStop():停止Activity时被回调
onDestroy():销毁Activity时被回调。
package cn.class3g.activity;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.app.AlertDialog.Builder;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
public classActivityLifeCydeActivity extends Activity {
private static final String TAG ="lifeCycle";
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "onCreate");
}
protected void onStart() {
super.onStart();
Log.i(TAG, "onStart");
}
protected void onResume() {
super.onResume();
Log.i(TAG, "onResume");
}
protected void onPause() {
super.onPause();
Log.i(TAG, "onPause");
}
protected void onStop() {
super.onStop();
Log.i(TAG, "onStop");
}
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart");
}
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "onDestory");
}
}
1、运行activity时:
onCreate ----- onStart ---- onResume
2、点返回键
onPause ---- onStop ----- onDestory
3、点击Home
onPause ---- onStop
4.长按Home重新回到ActivityLifeCydeActivity
onRestart ---- onStart ---- onResume
5.切换至SecondActivity之上
onPause ---- onStop
6.切换回 ActivityLifeCydeActivity
onRestart ---- onStart ---- onResume
创建一个对话框样式的activity:DialogActivity
7.切换至DialogActivity
onPause
8.按返回键返回至ActivityLifeCydeActivity
onResume
创建AlertDialog对话框
显示对话框并返回,发现此时并不能触发ActivityLifeCydeActivity实例的状态变化,也就不会调用其生命周期中任何函数
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG, "onRestoreInstanceState()");
}
protected void onSaveInstanceState(BundleoutState) {
super.onSaveInstanceState(outState);
Log.i(TAG, "onSaveInstanceState()");
}
1. 运行
2. 按Home
onSaveInstanceState --- onPause ---- onStop
3. 在桌面,长按Home重新回到ActivityLifeCydeActivity
onRestart ----onStart ---- onResume
此时并没有触发onRestoreInstanceState()
总结:
Activity 从创建到进入运行态所触发的事件
onCreate()-->onStart-->onResume()
从运行态到停止态所触发的事件
onPause()--->onStop()
从停止态到运行态所触发事件
onRestart()-->onStart()--->onResume()
从运行态到暂停态所触发事件
onPause()
从暂停态到运行态所触发事件
onResume()
相关文章推荐
- 基础总结篇之一:Activity生命周期
- Android中的Activity生命周期总结
- Activity的生命周期和启动模式总结
- 横竖屏切换时候Activity的生命周期的总结
- 横竖屏切换时候Activity的生命周期的总结
- 关于Activity生命周期的一些小总结
- Android开发探索第一章 Activity生命周期及启动模式总结(一)
- Activity生命周期总结
- 基础总结篇之一:Activity生命周期 http://blog.csdn.net/liuhe688/article/details/6733407
- Android总结之:Activity生命周期详解
- 【Android学习总结】之Activity:深入理解、体验Activity的生命周期
- 基础总结篇之一:Activity生命周期
- 基础总结篇:Activity生命周期 四种启动模式 以及TASK
- 基础总结篇之一:Activity生命周期
- 基础总结篇之一:Activity生命周期
- Fragment的生命周期以及跟Activity之间互相传值小总结
- Android总结篇系列:Activity生命周期
- Android基础总结——Activity生命周期与横竖屏切换
- Activity生命周期全面总结
- [置顶] Android之Activity生命周期总结(二)