`

onPause()方法的特殊性

 
阅读更多
onPause(), onStop(), onDestroy() are "killable after" lifecycle methods. This indicates whether or not the system can kill the process hosting the activity at any time after the method returns, without executing another line of the activity's code. Because onPause() is the first of the three, once the activity is created, onPause() is the last method that's guaranteed to be called before the process can be killed—if the system must recover memory in an emergency, then onStop() and onDestroy() might not be called. Therefore, you should use onPause() to write crucial persistent data (such as user edits) to storage. However, you should be selective about what information must be retained during onPause(), because any blocking procedures in this method block the transition to the next activity and slow the user experience.

onCreate(), onRestart(), onStart(), onResume() are "unkillable after" methods.They protect the process hosting the activity from being killed from the moment they are called. Thus, an activity is killable from the time onPause() returns to the time onResume() is called. It will not again be killable until onPause() is again called and returns.

简单来说,在执行了onPause()方法之后,直到执行onResume()之前,该activity所在的进程都是有可能“突然死亡”的,onStop()和onDestroy()方法并不能保证一定会被执行。所以onPause()方法是持久化相关数据的最后的可靠时机。因此onPause()是特别重要的生命周期方法
分享到:
评论

相关推荐

    Android生命周期 整合

    ### Android 生命周期整合详解 #### 一、Android 生命周期概述 Android 应用程序主要由四大组件构成...此外,在实际开发过程中,还需要注意一些特殊情况下的处理方式,确保应用程序在各种情况下的稳定性和用户体验。

    安卓常见面试题

    - 当 Activity 因配置变化(如屏幕旋转)而重启时,如果没有显式配置处理方式,则会重新经历 `onPause()`、`onStop()`、`onDestroy()`、`onCreate()`、`onStart()` 和 `onResume()` 这些方法。 - 如果设置了 `...

    应用源码完全退出程序的方法.zip

    Android系统管理应用程序中的组件,如Activity、Service等,通过它们的生命周期方法(如onCreate()、onStart()、onResume()、onPause()、onStop()和onDestroy())来控制这些组件的状态。通常,当用户按返回键或系统...

    activity生命周期讲解

    - **特殊情况**:在启动新Activity时,建议通过`onSaveInstanceState()`方法来保存数据。这样可以确保即使在Activity被系统回收时也能恢复其状态。 - **总结**:根据实际情况选择合适的数据保存策略,以提高用户体验...

    面试题.docx

    - `abstract class`:抽象类是一种特殊类型的类,它不能被实例化,但可以作为其他类的基类。抽象类中可以包含抽象方法(没有方法体的方法)和具体方法(有方法体的方法)。 - `interface`:接口是一组抽象方法的...

    android activity 生命周期

    - **`onRestart()`、`onStart()`和`onResume()`**:当Activity再次成为用户可见时,可以通过这些方法恢复之前保存的数据,确保用户界面和状态的一致性。 #### 六、总结 理解Activity的生命周期对于Android开发至关...

    Android退出整个应用的方法

    2. **在每个Activity的`onPause()`或`onStop()`方法中检查计数器**:当计数器为0时,表示所有Activity都已退出,可以调用System.exit(0)来强制结束应用。但这不是推荐的方法,因为它可能会影响到系统的正常行为,...

    Android 60 道面试题及答案.docx

    Activity 之间的切换可以看出 onPause()、onStop() 这两个方法比较特殊,切换的时候 onPause() 方法不要加入太多耗时操作否则会影响体验。 Fragment 生命周期: * onAttach():Fragment 附加到 Activity 时调用 * ...

    webview通过代理访问网络

    在 `onPause()` 方法中添加以下代码: ```java @Override protected void onPause() { super.onPause(); mWebView.setWebChromeClient(null); mWebView.setNetworkAvailable(false); } ``` 这样,Webview会根据...

    android 4.0 屏蔽 Home键

    需要注意的是,这种做法虽然在技术上可行,但并不鼓励在非特殊情况下使用,因为它可能干扰用户的正常操作。此外,Google Play商店可能会拒绝这类应用,因为它违反了Android的设计原则。因此,开发者在使用此方法时需...

    Android横竖屏贴换调动方法

    2. 用户按下Ctrl+F12切换横屏,Activity会按照以下顺序调用方法:`onSaveInstanceState()`、`onPause()`、`onStop()`、`onDestroy()`。这是为了保存当前状态并准备销毁Activity。 3. 系统重新创建Activity,执行`...

    EventBus的简单示例code

    订阅方法可以是任何可见性的,但通常推荐使用`public`。方法的返回类型没有特殊要求,通常为`void`。 4. **线程模式(ThreadMode)**:EventBus 提供了四种线程模式,用于控制事件分发时的执行环境: - **Main...

    Android、教程<经典> 5 Activity生命周期

    开发者需要在这些状态之间适当地处理回调方法,确保应用程序行为的正确性。 1. 创建(Creation) - onCreate():Activity首次创建时调用,用于初始化UI和数据。 - onStart():Activity变得可见但可能被其他...

    View生命周期测试工程

    而当用户焦点转移或部分屏幕被覆盖时,`onPause()`和`onResume()`方法会被调用,分别表示View进入后台和回到前台。值得注意的是,尽管这些方法与Activity的生命周期方法相似,但它们针对的是View级别的交互。 在...

    ActivityLife生命周期

    Activity是Android应用开发中的核心组件之一,主要用于展示用户界面并处理与用户交互。"ActivityLife生命周期"这个项目深入探讨了...通过实践,我们可以更准确地控制Activity的行为,提高应用的稳定性和响应性。

    《Android软件开发_A卷》期末考试试卷.doc

    - **知识点概述**:`onPause()`方法是在Activity进入非活跃状态时调用的生命周期回调方法之一。 - **详细解释**: - 选项C正确,即**当界面被隐藏时**。当用户切换到其他应用或者另一个Activity时,当前Activity的`...

    Android中FragmentActivity的作用与定义.pdf

    - 在处理Fragment的生命周期时,要特别注意在onPause()和onResume()方法中保存和恢复状态,以应对配置更改或用户离开后重新进入的情况。 总的来说,FragmentActivity是Android开发中的一个重要工具,它使得开发者...

    android笔记

    总之,Fragment和FragmentActivity是Android应用开发中的强大工具,它们使开发者能够构建更加灵活和模块化的UI,提高代码的可复用性和可维护性。理解并熟练掌握这两者的使用方法,对于提升Android应用的质量和用户...

Global site tag (gtag.js) - Google Analytics