【发布时间】:2011-10-24 09:39:30
【问题描述】:
我正在开发一个项目,我正在创建一个静态 class's object 。所以当我 switch off device at that time all the static objects are cleared 所以我想存储到 shared preference 。所以我可以再次使用它。是否可以将其保存在共享偏好中?
或者在重启设备后使用该对象的任何其他可能性?
【问题讨论】:
我正在开发一个项目,我正在创建一个静态 class's object 。所以当我 switch off device at that time all the static objects are cleared 所以我想存储到 shared preference 。所以我可以再次使用它。是否可以将其保存在共享偏好中?
或者在重启设备后使用该对象的任何其他可能性?
【问题讨论】:
【讨论】:
您无法在 SharedPreferences 中保存特定类型的对象。根据SharedPreferences.Editor 接口,您只能保存原始数据类型,例如:浮点数、整数、字符串、字符串集或布尔值。
【讨论】:
您当然可以存储/恢复静态类 SharedPreferences 的状态(针对序列化),但您需要一个应用程序/活动上下文来执行此操作,这意味着您有效地将静态类绑定到非静态(应用程序/活动)类。
这在设计方面有点奇怪 - 您的 Static 类会突然变得更有意义,由您的 Activity 直接创建(实例化)、加载(恢复)和保存(存储)?
否则,当它的状态是无意义的时候,就有可能访问它——这就是静态对象的本质吗?
【讨论】:
您不能优先直接存储类对象(除了内置的字符串、布尔值、整数等...)
但是您可以优先存储静态类中的变量。
例如
当您的设备关闭时,您必须将静态类的所有值复制到首选项中
在启动完成时,您可以从首选项中检索所有值到您的静态对象,或者在重新创建静态对象时,您可以从首选项中获取值到您的静态对象。
【讨论】: