В моем приложении я использую SyncAdapter(AbstractThreadedSyncAdapter) для синхронизации с сервером. В основном в фоновой службе я вставляю данные в таблицу sql, а затем, по завершении, я хочу сообщить пользовательскому интерфейсу, чтобы обновить 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();
}
}