java - EventBus 粘帖调用一次

标签 java android events bus

我使用 greenrobot 作为 eventbus 来发布一些粘性事件。一切正常,当我打开应用程序时,ex。显示的内容表明粘帖工作正常。

但是当我关闭应用程序并打开它第二次、第三次……时,没有前任。显示内容,这意味着尚未发布粘性事件。Sticky 事件仅发布一次!为什么?是正常现象还是bug?

我在 AsyncTaskonPostExecute 中使用下面的代码。

EventBus.getDefault().postSticky(new SliderBusModel(SlideID,SlideImage,SlideType,SlideTitle));

最佳答案

根据文档,只有最后一个粘性事件保留在内存中,直到您通过调用 removeStickyEvent(stickyEvent) 手动删除它,即一次只有一个粘性事件会保留在内存中。如果您在内存中已经有一个粘性事件并且您发布另一个粘性事件,那么前一个将丢失。如果您现有的事件被其他事件删除,请检查您的代码。阅读下文:

Some events carry information that is of interest after the event is posted. For example, an event signals that some initialization is complete. Or if you have some sensor or location data and you want to hold on the most recent values. Instead of implementing your own caching, you can use sticky events. So EventBus keeps the last sticky event of a certain type in memory. Then the sticky event can be delivered to subscribers or queried explicitly.

关于java - EventBus 粘帖调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42578794/

相关文章:

java - 如何调试 org.thymeleaf.exceptions.TemplateInputException?

Java - 调用ArrayList中对象的方法

android - 画中画打开应用程序的新窗口并显示大量最近的任务

javascript - AngularJS:取消订阅事件

java - 在eclipse中安装selenium-java-2.5.0

java - 这需要显式同步吗?

android - 即使我们只使用只读模式,我是否必须在 4 月 27 日之前更新 Google Fitness SDK v20?

php - 与用户级错误的共享偏好

opencv - 使用 Opencv 进行 Python 多线程视频处理 - 停止视频后 setMouseCallback 不起作用

javascript - 如何在黑莓浏览器上动态添加脚本元素?