1

このようなフラグメントで新しいアクティビティを開始すると

    Intent launchIntent = new Intent();
    launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    launchIntent.setClassName(getBaseActivity().getPackageName(), MainActivity.class.getName());
    startActivity(launchIntent);
    getBaseActivity().finish();

新しいアクティビティでキャッチしたい同じイベントをサブスクライブしている古いアクティビティのフラグメントが呼び出されます。古いアクティビティを間違って終了するか、フラグメントが終了していませんか? すべてのフラグメントとアクティビティの onDestroy メソッドで登録を解除します。

@Override
public void onDestroy() {
    OttoBus.getInstance().unregister(this);
    super.onDestroy();
}
4

1 に答える 1