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 を表示する Fragment では、次のように 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