java - 如何防止 Android 应用程序在每次手机 hibernate 时重置?

标签 java android multithreading sleep save

如果我的手机 hibernate 或我离开应用程序发送短信/接听电话,我的应用程序将重新启动。 我该如何防止这种情况?

我希望保存对象而不是基本数据类型。如果应用程序关闭或手机关闭,我不需要保存应用程序的当前状态/数据,尽管我准备在必要时这样做。

最佳答案

当调用 onSaveInstanceState(Bundle outState) 时,您需要在主 Activity 中保存所有临时状态变量。每当您的应用程序有可能被操作系统破坏时就会调用此函数。在您的 onCreate(Bundle savingInstanceState) 中,如果 savedInstanceState 不为 null,则意味着您的 Activity 之前已终止,您需要从该包中重新填充临时状态变量。

这就是为什么你的主 Activity 正在“重新启动”,因为当你的主 Activity 在被终止后恢复时,onCreate 会再次被调用,但它不会从包中加载数据来重新创建应用程序暂停时的状态。

这里有更详细的描述:http://developer.android.com/reference/android/app/Activity.html

关于java - 如何防止 Android 应用程序在每次手机 hibernate 时重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9423640/

相关文章:

java - 无法在 JNI 中编码为 UTF-8

android - 按名称将资源图像获取到自定义游标适配器中

c# - 如何在 Windows 窗体应用程序中使用多线程来更新进度条?

multithreading - 我如何使用 Rayon 将大范围拆分为多个范围 block ,并让每个线程在一个 block 中找到?

java - 服务器端javascript相对于java的优势

java - 在 Java 8 中将字符串转换为 LocalDateTime

android - 正在清除应用程序缓存,删除了 "data/data/<package_name>/files"文件?

java - 我们可以在线程上调用开始时间和运行实际开始之间注入(inject)其他命令吗?

java - Spring boot Jpa api调用时绑定(bind)数据源

android - 扫描蓝牙 LE 设备时出现问题(无回调)