Activity作为Android四大组件之一,在开发中是使用的极为频繁的一种组件。掌握Activity的使用和一些特性对开发十分重要,这里主要谈的是Activity的生命周期和启动模式以及IntentFilter的匹配规则分析。此篇内容是《Android开发艺术探索》的读书笔记。
1. Activity的生命周期
生命周期详解
我们可以通过如下一张图来观察Activity的生命周期:
如图所示:Activity的常用生命周期只有7个,分别为:
- onCreate: Activity正在被创建,此时界面不是可见的,在这个方法中通常做一些初始化操作,比如setContentView等。
- onRestart: Activity正在重新启动,一般情况下只有当当前Activity从不可见变为可见时会调用,比如Home键切换到了桌面或是用户打开了一个新的Activity,当前Activity没有被销毁前用户返回到了当前的Activity。
- onStart:Activity正在被启动,此时界面已经可见,但是还没有出现在前台,无法与用户进行交互,可以理解为Activity已经显示出来了,但是我们还无法看到
- onResume:Activity已经可见,并且出现在前台并开始活动,区别与onStart的是此时界面已经出现在前台,用户可以与之进行交互。
- onPause:Activity正在停止,正常情况下,紧接着onStop会被调用。在特殊情况下,如果这个时候快速的再回到当前Activity,那么onResume会被调用。
- onStop:Activity即将停止,可以做一些回收工作。
- onDestory:Activity即将被销毁,可以做一些回收工作和资源的释放。
典型状态下生命周期
几种生命周期流程:
(1)第一次启动:onCreate->onStart->onResume
(2)用户打开新的Activty或者切换到桌面时:onPause->onStop。这里有一种特殊情况,如果新的Activity采用了透明的主题,那么当前Activity不会回调onStop。
(3)当用户再次回到原Activity时:onRestart->onStart->onResume。
(4)当用户按back键回退时:onPause->onStop->onDestory
(5)当Activity被系统回收后再次打开,生命周期方法回调过程和(1)一样,但是过程有所区别,比如onCreate时需要恢复数据
(6)onCreate和onDestory是配对的,在整个生命周期中只会被调用一次,其他生命周期方法可能会被调用多次。