当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

第十三章 Activity与生命周期

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-23 11:14:04

nStart以 及onResume等方法仍然能够使应用程序重新回到Resumed状态。在onStop中,大家应当尽可能压缩只在必要数据的操作量,例如向数据库中写 入内容。请大家确保在onStop当中囊括了所有应用程序所使用的资源,从而避免该应用在被彻底关闭之后导致内存溢出问题。这套系统会在应用程序从resumed状态切换至stopped状态后保存特定数据,例如视图中需要显示的内容。当某个Activity从 Stopped状态恢复到Resumed状态时,onRestart、onStart以及onResume方法都会开始执行。不过onStart与 onResume的执行情况有所不同——例如在应用程序启动之时。而onRestart方法只会在应用程序从Stopped状态恢复至前台之后才会执行, 这样大家就能利用它来恢复任何保存在onStop当中的运行内容。提示:当大家从一个Activit之下启动另一个Activity时,前者会进入Stopped状态。如果用户随后利用后退按钮再次由后者返回先前的Activity当,那么前者的onRestart方法就会开始执行。 第三步如果大家的应用程序即将彻底关闭,例如我们的当前Activity被从系统当中移除,则onDestroy方法会开始执行。尽管这是在我们的 Activity完全消失之前执行的最后一个方法,大家仍然不应该简单地将所有内容一股脑清除。事实上,我们需要利用onStop或者onPause来处 理结束工作。当然也有例外情况,如果应用程序的后台进程仍然处于运行状态,那么这时候大家应该在onDestroy当中将其停止。在onDestroy执行之后,如果用户通过导航返回应用程序Activity,则对应onCreate方法将再次被启动。一般情况下,大家可以假 设onPause与onStop会在onDestroy之前执行。不过如果大家明确调用finish方法来结束一个Activity,则只有 onDestroy会被执行。在多数情况下,我们并不需要为应用程序当中的生命周期回调问题投入过多精力,因为大家完全可以利用onCreate方法的参数实现数据保留效果。在 Activity onCreate方法当中,Bundle参数负责如前所述自动进行视图信息保存。不过大家也可以利用该对象保存更多数据内容,例如记录用户与应用程序之间 的交互所产生的变量更新。要实现这一目标,大家可以在Activity类当中使用onSaveInstanceState方法,完成数据键值对的编写之 后、我们就可能在onCreate当中将其恢复。提示:当用户改变设备显示模式时,也就是在纵向及横向模式间进行切换,我们的Activity实际上会经历重新创建、onCreate也会被再次执 行。这一过程被我们称为配置变化。在这种情况下,系统会假设大家需要重新创建Activity,例如大家在每种显示模式下使用不同的布局方案。不过在多数 情况下,大家可能不希望系统照此办理。为了避免我们的Activity在显示模式转换时发生重新创建,大家可以从两种解决方式中作出选择:向清单内的 Activity添加“android:configChanges”属性,或者调整我们的Activity结构、利用我们在配置变量时所保留的 Fragments。 总结当大家开始学习如何为Android平台开发应用程序时,Activity当中所涉及的大量状态与回调方法可能会成为很多难题乃至混乱的根源。然而在大多数情况下,我们只需要采用最低数量的方法以确保自己的应用程序有能力提供用户所预期的功能与效果。在本系列教程的下一篇当中,我们将共同了解部分常用Android类,大家很可能会在自己的第一款应用当中与它们打交道。在此之后,我们将着眼于Android代码示例、需要了解的应用程序发布知识以及其它一些关于今后进一步学习的建议。

上一页  [1] [2] 


第十三章 Activity与生命周期