打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
设计Android的用户界面(四) -2

前面的文章中,已经创建好了一个用户演示Activity生命周期的示例,但是由于那篇文章篇幅过长,所以分成两部分来写,在这篇文章中,将详细介绍Activity的生命周期。

了解Activity的生命周期是非常有必要的,在后面的文章中会涉及到数据的保存(也就是持久化)等功能,而保存时机的选择关乎用户体验,而了解Activity的生命周期会对时机的选择有更好的理解。

文档中,已经有了比较清晰的说明:

  • 如果一个Activity显示在最前端,它的状态时active或者是running
  • 如果一个Activity失去焦点,但是还能在屏幕上看到它,比如说,被一个非全屏的或者是透明的另一个Activity遮盖,它此时的状态是paused。一个处于paused状态的Activity,保持着所有自身的状态和信息,秉持着与window manager的联系,但是当系统内存不足时,可能会被系统终止
  • 如果一个Activity完全看不见了,被其他的Activity完全挡住,它的状态变成stopped。处于stopped的Activity虽然也保留着如同paused状态一样的特性,但是此时的它更容易被系统终止
  • 如果一个Activity处于paused或者stopped状态时,系统可以通过要求Activity结束或者强制kill的方式从内存中删除这个Activity,当它在此需要显示时,就需要restart和重新加载以前的数据。(可见,适时的保存数据的重要性)

用一个状态装换图来说明问题:

仔细品味这张图,和上面的说明,会很好的理解Activity的生命周期。接下来,用前面的示例程序来具体说明一下。在前面的示例程序中,写了很多空方法,方法中只是打印了一行日志,这些方法都是Activity在进行状态转换的时候要使用的方法。

  • 程序启动
    INFO/ActivityLifecycle: onCreate …
    INFO/ActivityLifecycle: onStart …
    INFO/ActivityLifecycle: onResume …
  • 点击一下第一个按钮,会弹出一个小对话框,主Activity在对话框的后面还是能看的见,此时的Activity的状态时paused
    INFO/ActivityLifecycle: onPause …
  • 然后,点击一下模拟器的返回按键,小对话框消失,返回到主Activity
    INFO/ActivityLifecycle: onResume …
  • 点击一下第二个按钮,一个新的Activity会代替当前的Activity
    INFO/ActivityLifecycle: onPause …
    INFO/ActivityLifecycle: onStop …
    这时候,主Activity的状态就变成了stopped了
  • 点击一下模拟器的返回按键,返回到主Activity
    INFO/ActivityLifecycle: onRestart …
    INFO/ActivityLifecycle: onStart …
    INFO/ActivityLifecycle: onResume …
  • 再次点击一下模拟器的返回按键,退出程序
    INFO/ActivityLifecycle: onPause …
    INFO/ActivityLifecycle: onStop …
    INFO/ActivityLifecycle: onDestroy …

注意一下第一个按钮和第二个按钮被点击之后,所执行的过程是不同的。然后可以进行各种组合的前进退出,通过观察日志了解Activity的生命周期。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
第四讲:Activity入门指南
Android应用程序----Activity生命周期(2)
Android四大组件之一(Activity)
Android中Activity的生命周期
[转载]Android?Activity生命周期
Activity、BoradcastReceiver、Service综合Demo
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服