Androidアプリケーションにタブバーがあり、各タブにはさらに5〜7のアクティビティの流れがあり、これらのアクティビティはすべてタブバーを表示する必要があるため、このように activitygroup と getLocalActivityManager を使用して各アクティビティを意図しています
Intent intent = new Intent(thisActivity, activity2.class);
mView = getLocalActivityManager().startActivity("id", intent
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
)
.getDecorView();
setContentView(mView);
そして、このアクティビティ1の戻るボタンを次のように設定しました
mView.dispatchKeyEvent(event);
そのため、戻るボタンのコントロールはその意図したアクティビティに移動します2
次に、意図された activity2 の戻るボタンで、@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { //戻るキーが押された Log.d として、最後のアクティビティへの意図にオーバーライドします。 (this.getClass().getName(), "戻るボタンが押されました");
Intent intent = new Intent(getApplicationContext(),activity1.class);
mView = NearByActivity.mLocalActivityManager.startActivity("activity1", intent
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
)
.getDecorView();
setContentView(mView);
return true;
}
return super.onKeyDown(keyCode, event);
}
2 つのアクティビティでは正常に動作しますが、タブの 5 ~ 6 のアクティビティでは機能しません。3 番目のアクティビティの [戻る] ボタンをクリックすると、[戻る] ボタンがオーバーライドされず、[アクティビティ 2] の [戻る] ボタンが使用され、2 ではなくアクティビティ 1 に移動します
1 つのタブのコンテンツで 6 7 のインテントを実行してこれを解決する方法