這裏是我的情況 假設我有那些活動 甲 - >乙 - 「ç - > d返回回跳過一個活動的Android onbackpressed
我要回來,當一個在用戶點擊後退按鈕,當他在D ,但我也想回到B時,當用戶點擊後退按鈕C
當我從B前往C時,我認爲調用完成,但在這種情況下,我可以如果我點擊後面的C,我不會返回到B
我該如何解決這個問題,而不需要致電onBackPressed
兩項活動?
感謝
這裏是我的情況 假設我有那些活動 甲 - >乙 - 「ç - > d返回回跳過一個活動的Android onbackpressed
我要回來,當一個在用戶點擊後退按鈕,當他在D ,但我也想回到B時,當用戶點擊後退按鈕C
當我從B前往C時,我認爲調用完成,但在這種情況下,我可以如果我點擊後面的C,我不會返回到B
我該如何解決這個問題,而不需要致電onBackPressed
兩項活動?
感謝
當你開始每個活動,您將需要使用
startActivityForResult()
再有國旗說誰被停止中傳回的系統。因此,活動d:
timeToEnd() {
setResult(RESULT_D_CLOSING);
finish();
}
然後在A,C,d
onActivityResult(int requestCode, int resultCode, Intent data) {
switch(resultCode)
case RESULT_D_CLOSING:
// Close on upwards
setResult(RESULT_D_CLOSING);
finish();
case ....
// You get the idea
}
}
您是否嘗試過在你的意圖使用FLAG_ACTIVITY_CLEAR_TOP標誌(用於啓動從 「d」, 「A」)?
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP
如果設置,以及正在啓動的活動在目前的任務已經運行,然後,而不是推出該活動的一個新的實例,都在它上面的其他活動的將被關閉,這意圖將作爲新的意圖傳遞給(現在在頂部)舊活動。
這樣做的工作嗎? –
您有2個選項。您可以從startActivityForResult
開始活動,然後每個活動的onBackPressed
傳遞一個標誌,告訴活動退出開放。
另一種選擇是在同一活動中將A,B,C,D作爲片段放到背面堆疊上,然後打開它們,然後您可以通過編程方式循環訪問堆棧,以查看您想要的內容去做。
http://stackoverflow.com/questions/10202903/skip-going-back-to-direct-parent-activity-when-pressed-back –