网上有很多文章关于Android Activity的生命周期,现在我来写一篇。
大家都知道Activity代表着窗口,当窗口出现在手机屏幕上就表明Activity处于运行状态,窗口分为可见状态和不可见状态,如果要我来设计Android Activity的生命周期,我可能会这么设计:
启动onStart()----》运行状态running----》结束onStop()
onStart()方法:Activity启动,出现窗口
onStop()方法:Activity停止,窗口被覆盖
可是仔细想想,Android怎么可能这么简单的设计它的Activity?没错接下来我们再细想想,怎么想呢,很简单,将onStart和onStop细化呗,如果有一个电话进来,当接完电话后再回到这个Activity,难道要再重新这么来一次么?肯定不应该这样。起码也是这样:
那么怎么区分是第一次启动Activity还是又回到了这个已经存在的Activity呢,我能想到的加个方法来区分,也就是这样,
好,既然提到了Activity是被创建的,那就应该有个对应的被销毁的方法,被销毁也就是从内存中消失,也就是这样:
会不会觉得窗口可见和不可见状态粒度不够细,那就细化一下:窗口可见但不能和用户交互和窗口可见并且可以和用户交互。同时窗口消失的时候也不应该一下子就那么消失了,也就是这样:
由于Android系统可能回收不在运行状态的Activity,所以有两种状态Activity可能被系统杀掉,也就是这样:
这就是我对下面这张图的理解,可能解释的不是很恰当。