私が知りたいのは、1つのアクティビティから複数のアクティビティを更新する方法があるかどうかです。
たとえば、私のactivityC(私の場合はEditProfileActivity)から、ユーザープロファイルを更新します。activityCはの子であるactivityBの子である、activityA mainActivityのnavdrawerから、とオープン。また、activityCから開くことができるactivityEとactivityAから開くことができるactivityFもあります。全部更新したいです。
ユーザー名や写真などを変更した場合、activityCを閉じなくても、変更した情報を送信したいと思います。そして、そこから戻るか進むと、ユーザー情報はすでに更新されているはずです。ユーザーが何も変更しなかった場合、それらのアクティビティは更新されません。
アクティビティが1つだけの場合は、intent
またはを使用して行いonActivityResult
ます。
shared preferences
、またはstartActivityForResult
、およびなしでこれを行う方法はありonActivityResult
ますか?
以下のようにあなたは、この目的のために、イベントバスを使用することができ、これは、ここで説明しました:
次のようなイベントを作成できます。
public static class UpdateEvent { /* your getter and setter */ }
サブスクライバーの準備:サブスクライブメソッドを宣言して注釈を付け、オプションでスレッドモードを指定します。
@Subscribe(threadMode = ThreadMode.MAIN)
public void onUpdateEvent(UpdateEvent event) {
/* event fire here when you post event from other class or fragment */
};
登録-サブスクライバーの登録を解除します。
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);//Register
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);//unregister
}
次のようなイベントを起動します。
EventBus.getDefault().post(new UpdateEvent());
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加