我有一个单例,我存储从不同片段使用的共享信息。
另一方面,我有一个产生守护程序线程的服务。此线程连接到事件总线,并且可以从外部服务器接收事件。收到新事件后,更新单例并通过LocalBroadcastManager
通知片段。
是否在没有同步的情况下从创建的线程更新单例?我的意思是关于Java / Android内存模型。 (单例只能从此服务/线程更新。)
这种做法是好还是有更好的模式来实现它?
答案 0 :(得分:2)
不,Android中应该避免使用单例模式。为什么?因为单例模式使用静态实例字段。应该避免这样的静态字段,因为操作系统可以卸载您的类并且您丢失了所有内容。所以我的建议是删除单例模式或在应用程序的实例中使用它(我的意思是扩展Application类)。