Activity生命周期
首先,让我们用一张图片来简单直观的看看Activity的生命周期,如图所示
从图中来看,我们能够发现Activity生命周期能够简单的分为以下一些:
onCreate();
onStart();
onResume();
onPause();
onStop();
onRestart();
onDestroy();
并且,我们通过图中的箭头能够很直观的得到一些信息:
1.启动Activity,系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG,"onCreate************");//创建Activity时调用
运行Activity经历的周期
@Override
protected void onStart() {
super.onStart();
Log.e(TAG,"onStart************");//开始运行Activity
}
@Override
protected void onResume() {
super.onResume();
Log.e(TAG,"onResume************");//恢复Activity
}
.2.退出Activity,系统会先调用onPause方法,然后调用onStop方法,Activity进入停止状态,最后调用onDestroy方法将Activity进行销毁;
//退出Activity时调用此方法
@Override
protected void onDestroy() {
super.onDestroy();
Log.e(TAG,"onDestroy************");//调用此方法销毁Activity
}
3.若当前Activity被其他Activity覆盖或者手机锁屏时,系统会调用onPause方法,Activity进入暂停状态;若恢复到当前Activity或解除锁屏时,系统会调用onResume方法,恢复Activity的运行;
//当前Activity被其他Activity覆盖或者手机锁屏时
@Override
protected void onPause() {
super.onPause();
Log.e(TAG,"onPause************");//暂停Activity
}
//当前Activity解除覆盖或者手机解除锁屏时
@Override
protected void onResume() {
super.onResume();
Log.e(TAG,"onCreate************");//恢复Activity
}
4.若当前Activity跳转到新的Activity或进入后台状态时,系统会先调用onPause方法,暂停Activity,再调用onStop方法,Activity进入停止状态;若后退回到当前Activity时,系统会先调用onRestart方法,重新开始Activity,再按照默认的顺序,调用onStart方法,再调用onResume方法,Activity再次进行运行状态;
@Override
protected void onStop() {
super.onStop();
Log.e(TAG,"onStop************");//停止Activity
}
@Override
protected void onRestart() {
super.onRestart();
Log.e(TAG,"onRestart************");//重新开始Activity
}
@Override
protected void onStart() {
super.onStart();
Log.e(TAG,"onStart************");//开始运行Activity
}
@Override
protected void onResume() {
super.onResume();
Log.e(TAG,"onResume************");//恢复Activity
}