android - android 中的包是否永久保存 Activity 状态?

标签 android

当我想保存 Activity 的一些状态行为时,文档说我们应该实现 OnSaveInstanceState 和 OnReceiveInstanceState。

他们说即使在销毁或重新启动后,这也会保存 Activity 状态。我更关心销毁( Activity 完全消失),这是否意味着 bundle 被认为是持久的?

当我打开一个 pdf 阅读器时,关闭它并再次打开它,我看到它在我所在的同一页面中打开。这是使用 Bundles 还是其他实现的

最佳答案

要存储持久应用程序数据,请使用共享首选项Shared Preferences 只是一组持久存储的数据值。通过持久性,我们谈论的是应用程序生命周期 事件中持续存在的数据。换句话说,应用程序(或设备,就此而言)可以在不丢失数据的情况下启动和停止。下次用户启动应用程序时,该数据仍然可用。 一些游戏使用共享偏好来存储游戏达到的级别,玩家的名字...... 看这个link学习如何使用 Android Preference API

偏好与 bundle 相似,但是它们是持久的,而 bundle 不是!! 请记住,如果您需要存储持久数据,您有 4 个选择:

  1. 使用共享首选项
  2. 使用 SQLite 数据库
  3. 使用内部存储
  4. 使用外部存储

Bundles 不是持久化的,文档说不要指望它,onSaveInstanceState() 在 activity 即将被系统杀死时调用,但对于已知的重启(对于 屏幕旋转上的实例。)如果您的 Activity 因为系统需要更多资源而被终止(而 Activity 在后台),不会调用 onSaveInstanceState(),但会调用 onPause()。 onSaveInstanceState() 正如文档所述,实际上并不意味着保存持久数据。

关于android - android 中的包是否永久保存 Activity 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11165772/

相关文章:

android - SQLITE错误E/SQLiteLog:(1)靠近 "monthly": syntax error

android - 从 BIZ(交易)短信中提取(解析)金额和描述

Android Studio 在 macOS 上启动失败并出现错误 "Cannot Lock System Folders"

android - 将导航架构组件与抽屉导航一起使用

java - 将GSON中的值放入android中的TextView

android:主题 =“@android:style/Theme.NoTitleBar.Fullscreen” 添加到应用程序的 list 文件时不起作用

android - 在我的 phonegap android 应用程序中引用本地文件

Android Layout——layoutweight和weightsum

android - Android OS 4.1 (Jelly Bean) 使用 HWUI 还是 SKIA?

android - 按后退按钮取消异步任务下载