android - 从守护线程更新单例

标签 android multithreading service singleton

我有一个单例,我在其中存储不同 fragment 使用的共享信息。

另一方面,我有一个生成守护线程的服务。该线程连接到事件总线并负责从外部服务器接收事件。当它收到新事件时,更新单例并通过 LocalBroadcastManager 通知 fragment 。

从创建的线程更新单例而不同步是否正确?我的意思是关于 Java/Android 内存模型。 (单例只能从此服务/线程更新)。

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

最佳答案

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

关于android - 从守护线程更新单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30692444/

相关文章:

android - KSoap 和 HttpsTransportSE 返回 URISyntaxException(格式错误的 IPV6 地址)?

android - 使用 chrome 进行远程调试仅适用于较旧的人行横道版本 [cordova 4]

android - 在 background.systemjob.SystemJobService.onCreate 中调用 WorkManagerImpl.getInstance 导致 java.lang.IllegalStateException

c++ - 如何中断 libfcgi 中的 Accept 方法?

python - 缺失的例子 |使用线程预取和预处理数据

c++ - 在主线程之间共享一个变量

javascript - Angular 服务可以从一个 Controller 设置数据,但不能从另一个 Controller 设置数据

android - Android for Admob 中的 XML 或 Java 关键字

linux - docker.service 的 docker 作业失败,因为控制进程以错误代码退出

android - 如何检测设备何时进入 Android N 的多窗口模式