你好,游客 登录 注册 搜索
背景:
阅读新闻

Android生命周期回顾

[日期:2017-06-25] 来源:Linux社区  作者:jiy-for-you [字体: ]

先回顾生命周期

  • Activity一共有3中状态
    • 运行中

    Activity位于前台,并具有用户焦点

  • 暂停

    另一个Activity位于屏幕前台并具有用户焦点,但此Activity仍可见。也就是说,另一个Activity显示在此Activity上方,并且该Activity部分透明或未覆盖整个屏幕。暂停的Activity处于完全活动状态(Activity对象保留在内存中,它保留了所有状态和成员信息,并与窗口管理器保持连接),但在内存极度不足的情况下,可能会被系统终止。

    • 停止

    该 Activity 被另一个 Activity 完全遮盖(该 Activity 目前位于“后台”)。 已停止的 Activity 同样仍处于活动状态(Activity 对象保留在内存中,它保留了所有状态和成员信息,但未与窗口管理器连接)。 不过,它对用户不再可见,在他处需要内存时可能会被系统终止。

如果 Activity 处于暂停或停止状态,系统可通过要求其结束(调用其 finish() 方法)或直接终止其进程,将其从内存中删除。(将其结束或终止后)再次打开 Activity 时,必须重建。

Activity的生命周期主要有7个回调函数:

  1. onCreate
  2. onResume
  3. onRestart
  4. onStart
  5. onPause
  6. onStop
  7. onDestroy

还有onSavaInstanceState onRestoreInstanceState等。

Android生命周期回顾

方法说明是否能事后终止?后接
onCreate() 首次创建 Activity 时调用。 您应该在此方法中执行所有正常的静态设置 — 创建视图、将数据绑定到列表等等。系统向此方法传递一个 Bundle 对象,其中包含 Activity 的上一状态,不过前提是捕获了该状态(请参阅后文的保存 Activity 状态)。

始终后接 onStart()

onStart()
    onRestart() 在 Activity 已停止并即将再次启动前调用。

始终后接 onStart()

onStart()
onStart() 在 Activity 即将对用户可见之前调用。

如果 Activity 转入前台,则后接 onResume(),如果 Activity 转入隐藏状态,则后接 onStop()

onResume()

onStop()
    onResume() 在 Activity 即将开始与用户进行交互之前调用。此时,Activity 处于 Activity 堆栈的顶层,并具有用户输入焦点。

始终后接 onPause()

onPause()
onPause() 当系统即将开始继续另一个 Activity 时调用。此方法通常用于确认对持久性数据的未保存更改、停止动画以及其他可能消耗 CPU 的内容,诸如此类。它应该非常迅速地执行所需操作,因为它返回后,下一个 Activity 才能继续执行。

如果 Activity 返回前台,则后接 onResume(),如果 Activity 转入对用户不可见状态,则后接 onStop()

onResume()

onStop()
onStop() 在 Activity 对用户不再可见时调用。如果 Activity 被销毁,或另一个 Activity(一个现有 Activity 或新 Activity)继续执行并将其覆盖,就可能发生这种情况。

如果 Activity 恢复与用户的交互,则后接 onRestart(),如果 Activity 被销毁,则后接onDestroy()

onRestart()

onDestroy()
onDestroy() 在 Activity 被销毁前调用。这是 Activity 将收到的最后调用。当 Activity 结束(有人对 Activity 调用了 finish()),或系统为节省空间而暂时销毁该 Activity 实例时,可能会调用它。您可以通过 isFinishing() 方法区分这两种情形。

状态保存

  • onSavaInstanceState 里保存Activity 的瞬态(UI 的状态)
  • onPause 里实现持久性数据保存(例如保存到数据库)

处理屏幕旋转、键盘可用性等变化

发生屏幕旋转,键盘可用性变化之后,系统会调用onDestroy(),然后立即调用onCreate()。处理这种变化的最佳方法就是利用onSavaInstanceState()onRestoreInstanceState()(或onCreate())保存并回复Activity的状态。

更多Android相关信息见Android 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=11

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-06/145182.htm

linux
相关资讯       Android生命周期 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款