这是我参与「第四届青训营 」笔记创作活动的第3天
Activity的七个生命周期
分别是创建,开始,恢复,暂停,停止,重新开始,销毁。
- onCreate:当Activity被第首次加载时执行。我们新启动一个程序的时候其主窗体的onCreate事件就会被执行。如果Activity被销毁后(onDestroy后),再重新加载进Task时,其onCreate事件也会被重新执行。
- onStart:onCreate事件之后执行。或者当前窗体被交换到后台后,在用户重新查看窗体前已经过去了一段时间,窗体已经执行了onStop事件,但是窗体和其所在进程并没有被销毁,用户再次重新查看窗体时会执行onRestart事件,之后会跳过onCreate事件,直接执行窗体的onStart事件。
- onResume:onStart事件之后执行。或者当前窗体被交换到后台后,在用户重新查看窗体时,窗体还没有被销毁,也没有执行过onStop事件(窗体还继续存在于Task中),则会跳过窗体的onCreate和onStart事件,直接执行onResume事件
- onPause:activity被暂停或收回cpu和其他资源时调用。
- onStop:当Activity对与用户不在可见的时候调用,可能是被另一个Activity覆盖,或者退回到桌面。
- onDestory:在Activity被销毁前调用,这是Activity收到的最后调用,当Activity结束或者被系统销毁Activity实例的时候,会被调动该方法,
- onRestart:在Activity被停止后再次启动的时候调用,比如从桌面回到应用中时,然后调用onStart方法().
Activity的四个生命状态
| 状态 | 详解 |
|---|---|
| Running | 当前显示在屏幕的Activity位于Activity任务栈的栈顶,用户可见可交互 |
| Paused | 当前状态可见,但是已经失去界面焦点,此时Activity无法与用户交互 |
| Stopped | 用户不可见也不交互,可能被覆盖或者在后台 |
| Killed | 销毁界面,等待系统回收 |
代码,Logcat演示
public class MainActivity extends AppCompatActivity {
private static final String TAG="tag";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate: onstart");
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onCreate: onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onCreate: onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onCreate: onPause");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, "onCreate: onRestart");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onCreate: onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onCreate: onDestory------------");
}
}
启动应用
activity创造,开始,恢复
按下home键返回主界面
activity暂停
返回应用
activity重新启动
按下退回键
activity被销毁