[英]Android: with Greenrobot EventBus how to communicate between 2 Activity?
我想在2活動之間進行溝通。 兩者都是register()和unregister()方法:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
單擊列表(項目選擇)時,將啟動ActivityB。 ActivityB的目的是更新一些信息,並將這些新信息發送給ActivityA; 所以在ActivityB中我打電話:
EventBus.getDefault().post(new MyNewEvent(bla bla bla));
在我的ActivityA中我有這個方法:
public void onEvent(MyNewEvent event) {
...
}
不幸的是,這個方法onEvent從未被調用過。 為什么? 因為當ActivityB啟動時,調用ActivityA中的方法onStop(),所以完成了對總線的取消注冊...
那么如何通過使用EventBus在這兩個Activity之間進行通信?
感謝你們!
你可以通過使用粘性事件來實現這一點。
http://greenrobot.org/eventbus/documentation/configuration/sticky-events/
基本上,您在活動B上使用.postSticky()
發布一個粘性事件,當活動A再次注冊時,它將自動收到該粘性事件。
但正如@ jlhonora的回答所述,startActivityForResult可能更適合您的需求。
正如您已經想到的那樣,您將無法使用EventBus在兩個活動之間進行通信,因為您不能同時注冊兩個活動。
startActivityForResult模式更適合您要實現的目標: http : //developer.android.com/reference/android/app/Activity.html#StartingActivities
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.