【发布时间】:2016-02-18 08:33:34
【问题描述】:
onPause() 应该用于保存persistent 数据,onSaveInstanceState(Bundle) 通常用于保存non-persistent 数据。这是什么意思?持久性和非持久性数据有什么区别?
【问题讨论】:
标签: android android-activity persistence activity-lifecycle
onPause() 应该用于保存persistent 数据,onSaveInstanceState(Bundle) 通常用于保存non-persistent 数据。这是什么意思?持久性和非持久性数据有什么区别?
【问题讨论】:
标签: android android-activity persistence activity-lifecycle
持久性数据是您希望在完全关闭并重新启动应用后仍可用的数据。
在本地保护这些数据的三种最常用方法是使用 SharedPreferences、本地数据库或文件系统(将数据存储为文件)。
Android 开发者为此提供了一份指南: http://developer.android.com/training/basics/data-storage/index.html
【讨论】:
持久性数据:
完全关闭应用程序后可用的数据。
此类数据必须保存到共享首选项或数据库或内部或外部存储器中
非持久性数据:
完全关闭应用程序后不可用的数据。我们可以说,非持久性数据是指在应用程序执行期间可用的易失性数据。
【讨论】:
onPause() 应该用于保存持久数据
提交将在应用程序的整个生命周期中使用的数据。例如数据库中的数据或共享首选项。
onSaveInstanceState(Bundle) 通常用于保存非持久性数据
提交特定于当前视图会话的数据。例如跟踪屏幕上视图的当前状态。
【讨论】: