首选项与单例类在android中集中存储数据

时间:2014-05-05 20:37:27

标签: android

我应该使用单例类或首选项来存储程序中共享的数据。例如,假设用户可以启用或禁用位置跟踪。必须存储跟踪状态并与处理位置变化的SERVICE共享。在这种情况下,我应该使用单例类或首选项来持续选择后台服务吗?还请您选择相关的支持点。

3 个答案:

答案 0 :(得分:3)

SharedPreference的目的正是商店首选项设置和状态值。 Singleton将类的实例化限制为一个对象,这是另一回事。

如果要在应用程序关闭时避免数据丢失,如果不使用“首选项”,则必须手动创建一种方法来存储和加载文件,因此SharedPreference是最佳选择,如果你想在程序执行期间仅共享一个对象你可以使用singleton来限制它的实例化,但是如果要存储的值是String或使用Preference的原语,在这种情况下也没有副作用但是是一个编程选择。

答案 1 :(得分:1)

SharedPreferencesService和单身人士实质上是不同的。它们都不能用于另一个的INSTEAD。如果在任何情况下你可以使用一个而不是另一个,你可以确定你不能很好地理解它们的应用。

作为一个示例差异,SharePrefs保存在光盘中,因此它们是持久的,而Singletons则不是。

答案 2 :(得分:1)

Singleton - 将数据保存在变量中,并在销毁应用程序时删除。 共享首选项 - 将数据保存在应用程序之外,以便以后使用甚至应用程序都会被破坏。