2016-08-24 106 views
-2

我读过关于单例类销毁或Singleton模式,几个后单例类是像thisthis是生存进程终止

的Android坏但我无法理解如何正确或使用申报单例类sharedpreference for persistance任何人都可以提供关于如何在应用程序中维护全局对象的任何示例,或者如何以适当的方式实现这一点,任何帮助表示赞赏。

+0

@ user13请分享你的经验,像我这样的新人。 .thanks –

+0

https://developer.android.com/guide/index.html应该为你提供足够的例子 – 0xDEADC0DE

+0

@ 0xDEADC0DE它不提供任何关于销毁或处理单例的情况的任何文档,如果你发现这样的文档发布链接,我会很高兴看到 –

回答

0

我认为this你提到的链接是相当不错的。作为我个人的经验,在应用程序中维护全局对象的最好方法是使用一个从Application类继承的类,然后你可以通过setter和getter方法来管理对象这个技术上类似于android中的Singleton,除了大部分内容由android完成之外,所以使用这种机制而非单例是非常明智的。 另一方面,shared preferences有完全不同的工作,主要用于存储一些用户数据和行为

+0

@ user2921831我有很多遍历应用程序的全局对象,我必须多次访问,所以如何通过'Application'实现这个 –

+0

docs:''“”通常不需要子类Application。在大多数情况下,静态singletons可以提供更多模块化的方式。“”“' – pskink

+0

@ Shaya看看在http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/ –

0

要在进程终止之间保存数据,您必须以任何形式使用序列化。

最简单的方法是使用sharedpreferences + gson。

Singleton不会帮助,因为所有的数据都将被擦除,OS有一个处理程序可以在“低内存”情况下保存状态,但它仍然使用序列化(捆绑)。

你可以使用带有sharedpreferences的单例,数据客户端(活动)必须通知销毁,所以singleton可以转储数据。在开始时,单身人士将再次加载数据。

但请注意可能的不稳定性 - 如果应用程序崩溃会怎么样?

事情变得棘手,在一个应用程序中的多个进程。

+0

@马克西姆现在即时通讯使用相同的技术,它会导致任何性能headche –

+0

编辑答案,你可以使用singleton + sharedpreferences + gson,但你会得到设计头痛......总是有权衡... –