0

在我的应用程序中,我使用 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();
        }
    }
4

1 回答 1

0

尝试使用您自己的线程池创建自定义 EventBus。有一个类似的问题,它在我的情况下解决了它。

于 2015-06-19T21:57:08.283 回答