最近在看任玉刚老师写的《Android开发艺术探索》这本书,之前学了Activity的生命周期,但是一直没有总结,这次想根据这本书的知识点记录一下。
Activity是Android四大组件之一,并且是最频繁使用的组件,中文翻译为“活动”,在这本书中,“界面”这个词对Activity的解释我认为更加形象,也让我更加容易理解Activity。
Activity生命周期可以分为正常情况和异常情况下:
(1)正常情况指的是用户参与的情况下的生命周期;
(2)异常情况指的是Activity被系统回收或者由于当前设备Configuration发生改变从而导致Activity被销毁重建。
本笔记记录了在正常情况下的生命周期
Activity在正常情况下的生命周期:
(1)onCreate:生命周期中的第一个方法,表示Activity正在被创建。
(2)onRestart:表示Activity正在重新启动。当用户切换到新的Activity时,之前的Activity执行onPause和onStop,当用户回到这个Activity时,onRestart会执行。
(3)onStart:表示Activity正在被启动,即将开始。此时Activity为可见状态,但是没有出现在前台,用户无法和其交互。
(4)onResume:表示Activity已经可见,并且出现在前台可以活动。
注意:onStart和onResume两者虽然都是可见,但onStart时Activity还在后台,而onResume时Activity才显示到前台。
(5)onPause:表示Activity正在停止,但此时Activity还可见。
(6)onStop:表示Activity即将停止。
(7)onDestory:表示Activity即将被销毁,生命周期中的最后一个方法。
不同情况下的生命周期:
(1)对于一个Activity来说,当它第一次被启动时,生命周期为:onCreate->onStart->onResume;
(2)当用户打开新的Activity或者切换到桌面时,生命周期为:onPause->onStop;
(3)当用户再次回到原来的Activity时,生命周期为:onRestart->onStart->onResume;
(4)当用户按back键回退时,生命周期为:onPause->onStop->onDestory。
对于整个生命周期来说,onCreate和onDestory共同点在于只可以一次调用;
对于Activity是否可见来说,onStart和onStop随着用户的操作或者设备屏幕的点亮和熄灭,可以被调用多次;
对于Activity是否在前台来说,onResume和onPause随着用户的操作或者设备屏幕的点亮和熄灭,可以被调用多次。
当用户要开始一个新的Activity,那么旧的Activity的onPause先调用,之后新的Activity再启动。