活动的生命周期

android中onresume用法 安卓onresume_数据


onResume,onPause,onStop都是一种状态可以长时间持续,作用如同名字,onResume是继续的状态,可以与用户进行交互;onPause是暂停状态,被屏幕的另一个活动所阻挡,比如照相过程中要进行参数设置,参数屏幕弹出,照相功能暂停;onStop是出于后台状态,我们看不见。但各种参数都保存,就如同我们短暂退出App后,重新打开原来的状态还在。

而onCreate和onStart都是瞬时完成的。

onCreate完成后会相继调用onStart和onResume。

onCreate方法中包括一个savedInstanceState参数,

当 Activity 进入暂停状态时,系统会对 Activity 调用 onPause() 方法,通过该方法,您可以停止不应在暂停时继续的进行中操作(比如视频),还可保留在用户继续离开应用时应予永久保存的任何信息。如果用户从暂停状态返回到Activity,系统会重新开始该 Activity 并调用 onResume() 方法。
当 Activity 收到 onStop() 方法的调用时,它不再可见,并且应释放几乎所有用户不使用时不需要的资源。 一旦 Activity 停止,如果需要恢复系统内存,系统可能会销毁该实例。 在极端情况下,系统可能会仅终止应用进程,而不会调用 Activity 的最终 onDestroy() 回调,因此使用 onStop() 释放可能泄露内存的资源非常重要。

活动从停止状态返回前台时,会接受onRestart的调用。用户可能在回到它之前已离开应用很长时间,onStart() 方法是验证所需系统功能是否已启用的理想选择。

重建活动

当系统开始停止 Activity 时,它会调用 onSaveInstanceState(),因此,您可以指定希望在 Activity 实例必须重新创建时保存的额外状态数据。如果 Activity 被销毁且必须重新创建相同的实例,系统将已定义的状态数据同时传递给 onCreate() 方法 和 onRestoreInstanceState() 方法。

保存 Activity 状态

当 Activity 开始停止时,系统会调用 onSaveInstanceState() 以便Activity 可以保存带有键值对集合的状态信息。

恢复 Activity 状态

当 Activity 在先前销毁之后重新创建时,可以从系统向 Activity 传递的 Bundle 恢复已保存的状态。onCreate() 和 onRestoreInstanceState() 回调方法均接收包含实例状态信息的相同 Bundle。

因为无论系统正在创建 Activity 的新实例还是重新创建先前的实例,都会调用 onCreate() 方法,因此必须在尝试读取它之前检查状态 Bundle 是否为 null。 如果为 null,则系统将创建 Activity 的新实例,而不是恢复已销毁的先前实例。

也可以选择实现系统在 onStart() 方法之后调用的onRestoreInstanceState(),而不是在 onCreate() 期间恢复状态。系统只在存在要恢复的已保存状态时调用 onRestoreInstanceState(),无需检查 Bundle 是否为 null。