2011-12-08 34 views
2

我搜索過,並發現一般問題的幾個答案,並嘗試過他們都沒有成功。我真的沒有想到背堆棧如何工作,意圖標記或完成方法。這是我的設置:返回堆棧,飛濺和TabActivity

在應用程序啓動時,會出現一個啓動屏幕,其中一對AsyncTasks在後臺運行,並檢查更新內容的幾個Web服務器。 ProgressDialogs報告狀態。完成後(通過最後的onPostExecute),我啓動一個新的活動(「主頁」)。這似乎反映了一些其他職位的,但我覺得我的雜牌是由於家庭是一個TabActivity,有4個選項卡,最初對標籤要求setCurrentTab 0

因此,使用以前發佈的建議:

  1. 安卓noHistory上飛濺活動
  2. 調用Splash.this.finish()它會啓動家庭TabActivity
  3. 設置Intent.FLAG_ACTIVITY_CLEAR_TOP
  4. 的主頁TabActivity意圖標誌設置主頁後=「真」 TabActivity意圖標誌o ˚FIntent.FLAG_ACTIVITY_NO_HISTORY

的用戶看到飛濺的TabActivity發佈會,用戶點擊到另一個選項卡,然後打回 - 應用程序關閉(不強制關閉 - 只是關閉返回到設備的主屏幕) 。

如果我不使用其中的任何一個,當用戶在切換到另一個選項卡後回來時,它們會返回到Splash屏幕並卡住(我可以添加一個按鈕或某物將它們帶到Home TabActivity但這不是最佳的)。

想要的結果是,用戶看到Splash,進入Home TabActivity,單擊另一個選項卡,然後回來,他應該被帶回初始設置的選項卡(選項卡0)。

任何洞察力是讚賞。

TYIA

回答

1

後退堆棧實際上是正式名稱活動堆棧 - 每次啓動一個活動的時候,也被壓入堆棧的頂部(除非你設置你提到的那些標誌之一)。

這意味着,除非主應用程序中的每個選項卡都是單獨的活動,否則默認的返回鍵行爲將會離開您的主要應用程序活動。

您可以通過taking over the back key或重寫製表符切換行爲來控制此項,以啓動不同的活動。