我使用 greenrobot 作为 eventbus 发布一些粘性事件。一切正常,当我打开应用程序时,ex。显示内容显示粘贴工作正常。
但是,当我关闭应用程序并将其打开第二,第三,......时间没有前任。内容显示哪些粘贴事件尚未发布。Sticky
事件仅发布一次!为什么?这是正常的还是一个错误?
我在onPostExecute
的{{1}}中使用了以下代码。
AsyncTask
答案 0 :(得分:1)
根据文档,只有最后粘性事件保留在内存中,直到您通过调用removeStickyEvent(stickyEvent)
手动删除它为止。一次只有一个粘性事件将保留在内存中。如果您在内存中已经有一个粘性事件并且您发布了另一个粘性事件,那么前一个将丢失。如果现有事件被其他事件删除,请检查您的代码。请阅读以下内容:
某些事件包含事件发生后感兴趣的信息 发布。例如,事件表示某些初始化是 完成。或者,如果您有一些传感器或位置数据,并且您想要 坚持最新的价值观。而不是实现自己的 缓存,您可以使用粘性事件。所以EventBus保持最后的粘性 记忆中某种类型的事件。然后粘性事件可以 交付给订阅者或明确查询。