Activity生命周期

Activity 是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。通过实现回调方法可以管理 Activity 的生命周期。

Activity生命周期_第1张图片
Activity生命周期

1、onCreate方法:当 Activity 创建视图时调用 

2、onRestart方法:当 Activity 界面从新打开(第一次创建后不会调用,再次打开 Activity 界面时会调用) 

3、onStart方法:当activity界面变成可见时调用

4、onResume方法:当activity界面获取焦点时调用

5、onPause方法:当activity界面失去焦点时调用

6、onStop方法:当activity界面不可见时调用

7、onDestory方法:当activity销毁时调用


示例代码:

新建一个 Android 工程, 在 MainActivity 中重写以下方法

@Override

protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  System.out.println("--------- onCreate 创建视图 ---------");

}

@Override

protected void onRestart() {// 当activity界面从新打开,第一次打开不会调用

  super.onRestart();

  System.out.println("--------- onRestart 界面从新打开---------");

}

@Override

protected void onStart() {// 当activity界面变成可见时调用

  super.onStart();

  System.out.println("--------- onStart activity可见---------");

}

@Override

protected void onResume() {// 当activity界面获取焦点时调用

  super.onResume();

  System.out.println("--------- onResume 获取焦点 ---------");

}

@Override

protected void onPause() {// 当activity界面失去焦点时调用

  super.onPause();

  System.out.println("--------- onPause 失去焦点 ---------");

}

@Override

protected void onStop() {// 当activity界面不可见时调用

  super.onStop();

  System.out.println("--------- onStop 界面不可见 ---------");

}

@Override

protected void onDestroy() {// 当activity销毁时调用

  super.onDestroy();

  System.out.println("--------- onDestroy activity销毁 ---------");

}

程序启动时的日志信息:

I/System.out: --------- onCreate 创建视图 ---------

I/System.out: --------- onStart activity可见---------

I/System.out: --------- onResume 获取焦点 ---------

点击 Home 键的日志信息:

I/System.out: --------- onPause 失去焦点 ---------

I/System.out: --------- onStop 界面不可见 ---------

再次打开程序的日志信息:

I/System.out: --------- onRestart 界面从新打开---------

I/System.out: --------- onStart activity可见---------

I/System.out: --------- onResume 获取焦点 ---------

点击返回键,销毁 Activity 时的日志信息:

I/System.out: --------- onPause 失去焦点 ---------

I/System.out: --------- onStop 界面不可见 ---------

I/System.out: --------- onDestroy activity销毁 ---------


横竖屏切换时 Activity 的生命周期(会先销毁,然后再创建)

程序启动时的日志信息(默认竖屏):

I/System.out: --------- onCreate 创建视图 ---------

I/System.out: --------- onStart activity可见---------

I/System.out: --------- onResume 获取焦点 ---------

程序切换到横屏的日志信息:

I/System.out: --------- onPause 失去焦点 ---------

I/System.out: --------- onStop 界面不可见 ---------

I/System.out: --------- onDestroy activity销毁 ---------

I/System.out: --------- onCreate 创建视图 ---------

I/System.out: --------- onStart activity可见---------

I/System.out: --------- onResume 获取焦点 ---------

再切换成竖屏的日志信息:

I/System.out: --------- onPause 失去焦点 ---------

I/System.out: --------- onStop 界面不可见 ---------

I/System.out: --------- onDestroy activity销毁 ---------

I/System.out: --------- onCreate 创建视图 ---------

I/System.out: --------- onStart activity可见---------

I/System.out: --------- onResume 获取焦点 ---------

你可能感兴趣的:(Activity生命周期)