onPause,onStop,onDestory剖析

onDestory一定会调用么?

正常点击返回键: onDestroy方法一定会执行;

从后台强杀分两种情况:

第一种:当前仅有一个activity,这时候,强杀,是会执行onDestroy方法的;

第二种:栈里面的第一个没有销毁的activity会执行ondestroy方法,其他的不会执行。

比如说:从mainactivity跳转到activity-A(或者继续从activity-A再跳转到activity-B),这时候,从后台强杀,只会执行mainactivity的onDestroy方法,activity-A(以及activity-B)的onDestroy方法都不会执行

同时,我们看下官方对onDestory是怎么说的


onDestory.png

有两种方式会调到onDestory,一种是主动调用finish,还有一种是调用系统空间不足杀掉activity时,这两种方式可以通过isFinishing区分。
如果要保存数据建议在onPause或onSaveInstanceState(Bundle),这个方法经常用于释放线程资源。

onPause可以做耗时操作么?

onPause.png

假如你从A activity调到到B activity,直到A activity onPause执行完,才会开始B activity oncreate,所以不可以做耗时操作。
onPause通常用于保存一些永久的数据。

onStop一定会执行么?

如果B是个透明的窗口,或者是对话框的样式,就不会执行。

onstop.png

onstop用于停止更新UI,停止动画和其他视觉的事情。

你可能感兴趣的:(onPause,onStop,onDestory剖析)