onSaveInstanceState方法里面的PersistableBundle和Bundle两个参数有啥区别
在 onSaveInstanceState 方法中,PersistableBundle 和 Bundle 主要有以下区别:
-
持久化支持:
PersistableBundle支持跨进程持久化,这意味着其保存的数据在某些情况下(如系统升级、应用重装等)可能仍然存在。Bundle通常不支持这种跨进程的持久化。
-
数据类型限制:
PersistableBundle对能存储的数据类型有更严格的限制,通常只支持基本数据类型和实现了Parcelable接口的数据。Bundle相对来说可以存储更多类型的数据,但也需要注意兼容性和数据大小的限制。
-
用途场景:
PersistableBundle常用于保存一些关键的、需要在特定条件下长期保存的状态信息。Bundle则更常用于保存一般的、与当前Activity运行相关的临时状态信息。
例如,如果您的应用中有一些用户设置或关键状态信息,希望在系统升级后仍然能够保留,可能更适合使用 PersistableBundle 来保存。而对于一些在当前 Activity 运行期间的临时状态,如当前页面滚动位置、用户的临时输入等,使用 Bundle 就足够了。
总的来说,根据具体的需求和数据的重要性及持久化要求,来选择使用 PersistableBundle 还是 Bundle 来保存 Activity 的状态。
2222

被折叠的 条评论
为什么被折叠?



