深入理解Activity的生存期(二)

来源:互联网 发布:具体网络架构图 编辑:程序博客网 时间:2024/05/17 04:54

一个Activty的可见生存期:

是指调用onStart和onStop之间的那段时间。在这个时间段里,Activty对用户来说是可见的,但是它可能不具有焦点,或者被遮盖力。Activty在它们的完整生存期内可能会经历多个可见生存期,因为它们可能会在前台和后台之间进行切换。在个别的极端情况,android运行时可能会在一个Activity位于可见生存期时把它终止,而不调用onStop方法。

onStop方法应该用来暂停或者停止动画、线程、传感器监听器、GPS查找、定时器、Service或者其他专门用于更新用户界面的进程。当UI再次可见的时候,可以使用onStart(或者onRestart)方法来恢复或者重启这些进程。

onRestar方法用于在暂停或者停止后重新恢复时。

活动生存周期:

是指调用onResume及其对应的onPause之间的那段时间。一个处于活动状态的Activity是在前台的,并且正在接收用户的输入事件。Activity在被销毁之前可能会经历多个活动生存期,一定要尽量让onPause和onResume中的代码执行迅速,并且其中的代码尽可能少,以保证在前台和后台之间进行切换的时候应用程序能够保持响应。在onPause之前,是对onSaveInstance的调用。这个方法提供了把Actitivy的UI状态保存在一个Bundle中的机会,这个Bundle对象将会被传递给OnCreate和OnRestoreInstanceState方法。可以使用onSaveInstanceState来保存UI状态,从而保证当Actitvy下次变为活动状态时,它能够展现与之前相同的UI.

大部分Activity实现都至少会重写onSaveInstanceState方法来提交未保存的改动,以为它标记了一个点,在这个点之外的Activtiy可能在没有警告的情况下被终止。当Activity不在前台的时候,也可以根据应用程序的架构,选择挂起线程、进程或者Broadcast Receiver.

onResume方法可以说轻量级的。这里,不需要重写加载UI状态,因为当要求加载UI状态的时候,它会由onCreate和onRestoreInstanceState方法处理,使用onResume可以重新注册任何可能已经使用onPause停止的Broadcast Receiver或者其他进程。

总结:简单区分活动生存周期和可见生存期:能够响应用户操作的就是活动的,能看见,但不一定能响应用户操作的是可见生存期。

0 0
原创粉丝点击