一个应用程序的活动除了OnCreate方法之外,还有onPause和OnResume等方法,当从一个活动切换到另一个活动时,原来的活动将经过一系列的状态改变[4]。开发者可在程序中添加各状态相对应的流程,每当活动状态改变时,就会执行对应的流程。为了得到更佳的用户体验,活动必须在各个周期中负责保管状态、恢复状态以及传送资料等工作。
3。2。1 活动的生命状态文献综述
Android的虚拟机是使用堆栈管理。主要有四种状态:
(l) 活动状态
活动状态是指用户启动应用程序或活动后,活动运行中的状态。在Android平台上,同一时间有且只有一个活动会处于活动或者运行状态。其他的活动都是未启动、停止的或是暂停状态。
(2) 暂停状态
暂停状态是指活动暂时变暗,回到背景画面的状态。当弹出警告对话框或者来电话时,就会让原来正在运行活动的退回到背景画面。弹出的警告对话框等遮挡了原来的活动画面。所以活动处于暂停状态时,用户是无法与原活动进行互动的。
(3) 停止状态
停止状态是指其他活动正在被执行,此活动己经离开主屏幕,不再有动作。可以按返回键,调出所有处在停止状态的应用程序。处于停止状态的活动,还可以通过通知来唤醒。
(4) 已回收或未启动状态
已回收或未启动状态具体是指活动还未被启动,却已经被手动终止或被系统回收的状态。可以在程序中调用finish方法来手动终止活动。如果是系统回收的话,可能是由于内存不足,根据系统内存不足时的回收原则,会将处于停止状态的活动的内存进行回收[5]。
图2 Android活动生命周期
3。2。2 活动的运作流程
Android应用程序应遵循的运作流程如下:
(l) 一般启动
启动活动的流程为onCreate一>onStart一>onResume。首先需要分配资源给这个活动(创建状态),再将活动的内容展示到屏幕上(启动状态);在一切就绪后,取得屏幕的控制权(恢复状态),用户可以开始使用这个程序。
(2) 调用另一个活动
调用另一个活动的基本流程为onPause一>onCreate一>onStart一>0nResume一>onStop。该流程首先冻结原来的活动,再交出屏幕控制权;直到活动2完成一般启动流程后,活动1才会被停止。
(3) 回到原来活动
回到原来活动的基本流程为onPause一>onRestar来*自~优|尔^论:文+网www.youerw.com +QQ752018766*t一>onStart一>onResume一>onStop一>onDestroy。另外按返回键也可以回到原来的活动。
(4) 退出结束
退出结束的基本流程为onPause一>onStop一>onDestroy。如果程序中有直接调用finish方法来关闭活动的话,系统会自动跳过先冻结的阶段,直接暂停,停止,直至销毁。
(5) 回收后再启动
回收后再启动的基本流程为onCreate一>onStart一>onResume。如果被回收掉的活动一旦又重新被调用时,会像一般启动一样再次调用活动的onCreate方法[1]。
当在模拟器上已经执行过多个应用程序,只要按下返回键,就会开启最近一次开启过的活动。所以如果要让再次被创建的活动跟原来开启过的一样,那么在活动之间切换时,就要保存资料:即在每次活动运行到暂停或停止状态时先保存资料,然后在创建时将资料读取出来[3]。