捆绑多久了?

ryy*_*yye 6 android bundle sharedpreferences android-lifecycle android-activity

我知道a Bundle可用于在活动之间传递数据,以及在屏幕轮换等配置更改的情况下保存和恢复数据.

我还读到这SharedPreferences是存储持久数据的首选方式,而不是Bundle.

为什么会这样呢?为了Bundle处理配置更改,即使在销毁活动之后也必须保持这种状态.那究竟什么是寿命Bundle呢?是否存在通过垃圾收集任意消除的某一点,或者Bundle只要您不手动选择清除它,数据是否会持续存在?

Epi*_*rce 3

Bundle当活动存在时持续,即活动尚未完成。

需要注意的一个有趣的事实是,当发生进程死亡并且 Android 屠杀您的应用程序并重新创建(调用)Application 类onCreate()时,将重建 Activity 堆栈,并从捆绑包中重新初始化该 Activity saveInstanceState

如果我没记错的话,它SharedPreferences会将您提供的数据存储在文件夹中的 XML 文件中。data/<applicationname>/preferences