Android学习笔记之 Activity生命周期
- 根据Android API知,所有的Activity 在系统中通过Activity栈进行管理,当一个新的Activity被启动时,它就被放在栈的顶部并且成为运行中的Activity,原来显示的Activity就被长久的保留在它下面,并且直到这个新的Activity退出的时候原来的Activity才会重新回到前台。
- 官方给的Activity生命周期的流程图如下:
通过代码来查看Activity生命周期中方法的调用顺序
- 新建一个项目叫做ActivityLifeCycle
- 在MainActivity中重写父类的方法,在其中打印Log
package com.samplecode.activitylifecycle;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
private static String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG,"onCreate()");
}
@Override
protected void onStart() {
super.onStart();
Log.i(TAG,"onStart()");
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG,"onResume()");
}
@Override
protected void onPause() {
super.onPause();
Log.i(TAG,"onPause()");
}
@Override
protected void onStop() {
super.onStop();
Log.i(TAG,"onStop()");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG,"onDestroy()");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG,"onRestart()");
}
}
- 运行程序,启动MainActivity,查看打印Log
说明一个新的Activity启动时调用方法的顺序为onCreate()->onStart()->onResume() - 点击返回键,退出当前程序,查看打印Log
说明当前程序退出,正在显示的Activity退出,调用方法的顺序是onPause()->onStop()->onDestroy() - 新建一个Activity,通过MainActivity启动,查看打印MainActivity中打印的Log
说明当前Activity被新的Activity覆盖之后调用方法的顺序是onPause()->onStop() - 点击返回键,返回MainActivity,查看打印Log
说明被新的Activity覆盖的旧Activity重新回到前台时调用方法的顺序是onRestart()->onStart()->onResume() - 从SecondActivity启动,到退回MainActivity,查看打印Log
表明一个Activity正常的启动到退出的过程调用方法的顺序是onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy() - 当按下Home键,MainActivity被压入后台,查看打印Log
- 将后台的程序启动,查看打印Log
通过打印的Log可知按Home键被压入后台再启动,与被新的Activity覆盖再回到前台的效果是一样的
资源下载地址:http://download.youkuaiyun.com/detail/thethin/9560484