Android之Activity生命周期

Activity类的七个回调方法,覆盖了活动生命周期的每一个环节。

1.onCreate()————————初始化操作,活动第一次被创建时调用,它是生命周期第一个调用的方法,我们在创建Activity时一般都需要重写该方法,然后在该方法中做一些初始化的操作,如通过setContentView设置界面布局的资源、初始化所需要的组件信息、绑定监听事情等。 

2.onStart()—————————启动操作,活动由不可见变为可见时调用,此时Activity已处于可见状态,只是还没有在前台显示,此时Activity已显示而我们无法看见,无法交互。

3.onResume()————————交互操作,活动准备与用户交互时调用,Activity已在前台可见,可与用户交互了,当Activity停止后(onPause方法和onStop方法被调用),重新回到前台时也会调用onResume方法,可以在onResume方法中初始化一些资源,如重新初始化在onPause或者onStop方法中释放的资源。

4.onPause()—————————暂停操作,系统准备启动或恢复另一个活动时调用,一般情况下onStop方法会紧接着被回调。但是当用户操作使当前Activity退居后台后又迅速地再回到到当前的Activity,此时执行onPause方法后onResume方法就会被回调。在onPause方法中我们可以做一些数据存储或者动画停止或者资源回收的操作,但是不能太耗时,因为这可能会影响到新的Activity的显示——onPause方法执行完成后,新Activity的onResume方法才会被执行。

5.onStop()——————————停止操作,活动完全不可见的时候调用,一般在onPause方法执行完成直接执行,表示Activity即将停止或者完全被覆盖(Stopped形态),此时Activity不可见,仅在后台运行。同样地,在onStop方法可以做一些资源释放的操作(不能太耗时)。 

6.onDestroy()————————回收操作,活动被销毁之前调用,也是生命周期最后一个执行的方法,一般我们可以在此方法中做一些回收工作和最终的资源释放

7.onRestart()————————重启操作,活动由停止变为运行状态之前调用  ,当Activity由不可见变为可见状态时,该方法被回调。这种情况一般是用户打开了一个新的Activity时,当前的Activity就会被暂停(onPause和onStop被执行了),接着又回到当前Activity页面时,onRestart方法就会被回调。 

点击Home键回到主界面后,再次点击App回到Activity时–>onRestart()–>onStart()–>onResume()依次被调用;

点击Back键回退时,相当于退出了当前Activity,Activity将被销毁,因此 退出当前Activity时–>onPause()–>onStop()–>onDestroy()依次被调用。假设:先启动Activity A->在Activity A中启动Activity B->按Back键按Back键时的生命周期为B.onPause()->A.onRestart->A.onStart->A.onResume-> B.onStop->B.onDestroy;

灭屏时,onPause()和onStop()会依次被调用;屏亮时,onRestart(),onStart(),onResume()会依次被调用。

1)启动Activity

onCreate() —> onStart() —> onResume()

2)按Home键回到桌面 / 锁屏

onPause() —> onStop()

3)从桌面回到Activity / 解锁

onRestart() —> onStart() —> onResume()

4)跳转新Activity

A:onPause() —> onStop()

B:onCreate() —> onStart() —> onResume()

A —> B:onPause()_A —> onCreate()_B —> onStart()_B —> onResume()_B —> onStop()_A

5)返回上一个Activity

B:onPause() —> onStop() —> onDestroy()

A:onRestart() —> onStart() —> onResume()

B —> A:onPause()_B —> onRestart()_A —> onStart()_A —> onResume()_A —> onStop()_B —> onDestroy()_B

6)退出Activity

onPause() —> onStop() —> onDestroy()

 

posted @ 2019-06-24 17:05  kang09  阅读(204)  评论(0编辑  收藏  举报