典型情况下Activity的声明周期分析
1,在正常情况下,activity会经历的声明周期如下:
onCreate(),onRestart(),onStart(),onResume(),onPause(),onStop(),onDestory()
activity声明周期的切换过程
根据上图,分析:
1)、activity第一次启动的时候,回调如下:onCreate---->onStart---->onResume。
2)、当用户打开新的Activity或者切换到桌面的时候,回调如下:onPause---->onStop,
这里有一种特殊情况,就是当activity采用了透明主题,那么当前activity不会回调onStop
3)、当用户再次回到原activity时,回调如下:onRestart---->onStart---->onResume
4)、当用户回退时,回调如下:onPause---->onStop---->onDestory
5)、我们可以总结出:onCreate和onDestory是配对的,onStart与onStop是配对的,onResume与onPause是配对的,二者的区别为activity可见于不可见发生,当activity在后台时,onStart和onStop是配对的,比如说屏幕的熄灭和点亮,当activity处于可见时,onResume与onPause是配对的,当activity从页面切换到后台或者是后台切换到页面的时候调用。
6)、onStart和onStop是从activity是否可见这个角度来回调的,onResume和onPause是从Activity是否位于前台这个角度来回调的
7)、当从A页面跳转到B页面的时候,A的onPause先执行然后B的onPause才会执行,A-onPause--->B-onCreate--->B-onStart--->B-onResume--->A-onStop
从7总结来看:onPause和onStop都不能执行耗时操作,尤其是onPause
我的总结到此,欢迎大家提出疑问哦