2013-11-15 48 views
0

我開發的Android應用程序的iOS應用程序,我面臨一個問題。在Android應用程序中,用戶可以從一個主選項卡導航到5個活動,比如導航應用程序,但是當我到達第5個活動並完成任務時,我需要完成所有5個活動,並返回到主標籤活動。我會怎麼做?立即完成許多活動

在iOS中,我只是popToRootViewController而就是這樣..但在android中沒有這樣的事情,我知道。

感謝, 牛頓

編輯#1:IM支持Android 2.2的,我使用的SherlockBar庫。

+3

如果活動鏈中沒有倒退,每次活動都可以在開始下一個活動後簡單地「完成()」。否則,你會讓他們開始下一個活動「結果」,完成()後收到正確的結果。 – mah

+0

@mah謝謝你的回覆..但我不能簡單地完成每個活動,然後再開始下一個活動,因爲用戶可能想回去改變一些東西,然後再前進。 –

+0

每個預期的Android應用程序設計,這不是真的很有理由不盡早完成()。作爲一個寫得很好的Android活動,你需要能夠保存你的狀態並在很少的通知下恢復它,以響應被暫停/恢復(當活動改變時,當home按鈕被按下,當power被刪除等) - 所以你說你不能做你已經應該做的事情?沒有法律說你必須這樣做,但如果你準備好做Android設計所要求的,那麼你在這裏的任務會更容易。 – mah

回答

2

啓動使用FLAG_ACTIVITY_CLEAR_TOP的意圖,你的根活動:

Intent intent = new Intent(...); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

的答案,但是它不會創建另一個實例我的標籤欄活動? –

+0

哦不..我只是讀這個國旗文件,它看起來很有前途..我會嘗試這個和其他altenartives ..謝謝! –

2

您應該使用這個NavUtils輔助類,其管理每個Android的設計指南適當的導航。您可以簡單地調用navigateUpTo方法。

Intent intent = new Intent(...); 
NavUtils.navigateUpTo(this, intent); 

該課程的其他用途請查看navigation guide

+0

感謝您的回覆。你的回答是正確的,但因爲我從一開始就沒有使用NavUtils,所以需要花費很多精力來更新所有5個活動才能使用它..所以我認爲@ Darkhogg的回答更適合我的情況! –

+0

其實''NavUtils'與前果凍豆設備上的@Darkhogg答案相同: '@Override public void navigateUpTo(Activity activity,Intent upIntent) {upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); activity.startActivity(upIntent); activity.finish(); }' 在JB上,它調用'activity.navigateUpTo'。 – WonderCsabo