发送代码如下:
EventBus.getDefault().postSticky(
ShowMiniAnalyzeResultEvent(
geometry as PolygonGeometry,
AnalyzeType.ANALYZE_MANUAL.type,
binding.mapView
)
)
接收代码:
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void showMiniAnalyzeResult(ShowMiniAnalyzeResultEvent event) {
......
}
现在接收的地方是能接收到了,但是一旦接收了,再次进入这个接收页面,还会执行接收事件,导致重复执行多次,还有如果该界面有多个接收事件,也会存在多个接收事件多次执行的情况。解决办法:在接收到消息后移除粘性事件
EventBus.getDefault().removeStickyEvent(event);
代码如下所示:
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void showMiniAnalyzeResult(ShowMiniAnalyzeResultEvent event) { EventBus.getDefault().removeStickyEvent(event); ...... }