一、本次目标
设计如下界面,包括四个按钮,两个文本框。单击对应按钮可以启动对应activity。假定Activity A为启动Activity。具体如图所示:图一是初始界面(Activity A is started)、图二为单击Dialog按钮后(Activity A is paused)、图三为单击“Start B”(Activity A is stopped and Activity B is started)、图四为单击Start C。
二、Activity生命周期简析
Activity作为四大组件之一,出现的频率相当高,基本上我们在Android的各个地方都能看见它的踪影,因此深入了解Activity,对于开发高质量应用程序是很有帮助的。
在日常应用中Activity是与用户交互的接口,它提供了一个用户完成相关操作的窗口。当我们在开发中创建Activity后,通过调用setContentView(View)方法来给该Activity指定一个布局界面,而这个界面就是提供给用户交互的接口。android系统中是通过Activity栈的方式来管理Activity的,而Activity自身则是通过生命周期的方法来管理的自己的创建与销毁,既然如此,现在我们就来看看Activity生命周期是如何运作的。
2.Activity的形态
Active/Running:Activity处于活动状态,此时Activity处于栈顶,是可见状态,可与用户进行交互。
Paused:当Activity失去焦点时,或被一个新的非全屏的Activity,或被一个透明的Activity放置在栈顶时,Activity就转化为Paused状态。但我们需要明白,此时Activity只是失去了与用户交互的能力,其所有的状态信息及其成员变量都还存在,只有在系统内存紧张的情况下,才有可能被系统回收掉。
Stopped:当一个Activity被另一个Activity完全覆盖时,被覆盖的Activity就会进入Stopped状态,此时它不再可见,但是跟Paused状态一样保持着其所有状态信息及其成员变量。
Killed:当Activity被系统回收掉时,Activity就处于Killed状态。
Activity会在以上四种形态中相互切换,至于如何切换,这因用户的操作不同而异。了解了Activity的4种形态后,我们就来聊聊Activity的生命周期。
Android中activity的生命周期经典流程图如下:
4.各生命周期简析