通过Greenrobot Eventbus从后台线程到主要通信

时间:2015-02-23 16:40:25

标签: android android-syncadapter greenrobot-eventbus

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

1 个答案:

答案 0 :(得分:0)

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