在我的应用中,我使用SyncAdapter(AbstractThreadedSyncAdapter)与服务器同步。基本上在后台服务中我将数据插入到sql表中,然后在完成时我想通知UI用新数据更新ListView。为此,我尝试使用GreenRobot EventBus,但没有成功。
我的活动
public class SyncResultMsg {
public String message="";
public SyncResultMsg() {}
public SyncResultMsg(String value) {
this.message = value;
}
}
将数据插入数据库后,我就像这样调用EventBus
SyncResultMsg event = new SyncResultMsg();
event.message = "groupsFetched";
EventBus.getDefault().post(event);
在我显示ListView的片段中,我试着像这样接收EventBus:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
public void onEventMainThread(SyncResultMsg event) {
String msg = event.message;
if (msg.equals("groupsFetched")){
showNewData();
}
}
答案 0 :(得分:0)
尝试使用您自己的线程池创建自定义EventBus。有一个类似的问题,它在我的案例中解决了。