Android 从守护进程线程更新单例
我有一个单例,在这里我存储来自不同片段的共享信息 另一方面,我有一个生成守护进程线程的服务。此线程连接到事件总线,并负责从外部服务器接收事件。当它收到新事件时,更新单例并通过Android 从守护进程线程更新单例,android,multithreading,service,singleton,Android,Multithreading,Service,Singleton,我有一个单例,在这里我存储来自不同片段的共享信息 另一方面,我有一个生成守护进程线程的服务。此线程连接到事件总线,并负责从外部服务器接收事件。当它收到新事件时,更新单例并通过LocalBroadcastManager通知片段 从创建的线程更新单例而不同步是否正确?我的意思是关于Java/Android内存模型。(单例只能从此服务/线程更新) 这种方法是好的还是有更好的模式来实现它?不,单例模式应该在Android中避免。为什么?因为singleton模式使用静态实例字段。应该避免这样的静态字段,
LocalBroadcastManager
通知片段
从创建的线程更新单例而不同步是否正确?我的意思是关于Java/Android内存模型。(单例只能从此服务/线程更新)
这种方法是好的还是有更好的模式来实现它?不,单例模式应该在Android中避免。为什么?因为singleton模式使用静态实例字段。应该避免这样的静态字段,因为操作系统可以卸载您的类,而您会丢失它的所有内容。因此,我的建议是删除singleton模式或在应用程序实例中使用它(我的意思是扩展应用程序类)。谢谢,我将使用应用程序类而不是singleton,但是从线程更新其数据是安全的吗?(能见度问题)不,这不安全。您正在更新来自两个不同线程的相同数据,因此需要同步访问。如果答案对你合适,请记住接受。