我有一個「a-b-c-d」活動歷史記錄。 我想殺死活動「c」和「d」並開始一個新的「x」活動,以便新訂單變成「a-b-x」。Android活動堆棧管理
Intent i = new Intent(D.this,B.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.putExtra("start_x", true);
startActivity(i);
if (getIntent().getBooleanExtra("start_x", false)) {
Intent i = new Intent(B.this,X.class);
startActivity(i);
}
這就是我這樣做(我用了很多次)。 有沒有更簡單的方法來做到這一點?
編輯:我忘了寫這個:有必要按下後退鍵並轉到「C」活動,而在「D」。
你在做什麼是最簡單和最直接的方式來做到這一點。您還可以將'Intent.FLAG_ACTIVITY_SINGLE_TOP'添加到您用來從'B'開始'D'的'Intent',並將重用'B'的現有實例。你應該在'B'中重寫'onNewIntent()'並從那裏檢查額外的和(可選的)開始'X'。 –
謝謝大衛 – FixeFixe