从守护程序线程更新单例

时间:2015-06-07 10:24:50

标签: android multithreading service singleton

我有一个单例,我存储从不同片段使用的共享信息。

另一方面,我有一个产生守护程序线程的服务。此线程连接到事件总线,并且可以从外部服务器接收事件。收到新事件后,更新单例并通过LocalBroadcastManager通知片段。

是否在没有同步的情况下从创建的线程更新单例?我的意思是关于Java / Android内存模型。 (单例只能从此服务/线程更新。)

这种做法是好还是有更好的模式来实现它?

1 个答案:

答案 0 :(得分:2)

不,Android中应该避免使用单例模式。为什么?因为单例模式使用静态实例字段。应该避免这样的静态字段,因为操作系统可以卸载您的类并且您丢失了所有内容。所以我的建议是删除单例模式或在应用程序的实例中使用它(我的意思是扩展Application类)。