2012-01-25 78 views
2

我有一個支持多任務處理(在後臺運行)的應用程序,但我已經運行到了Android堆棧中的問題。Android的活動回棧和多任務處理的支持

這是我有:

活動一種結果啓動活動B,所以......

活動A - >活動B

如果在B點的用戶長按活動在按鈕,切換到另一個應用程序(例如說瀏覽器),然後再長按下按鈕,還是回到我的應用程序,他們將在活動B,但此時後面棧看起來像這樣:

活動A - > Internet瀏覽器 - >活動B

所以,當我做finish()從我的活動B不回來我的活動A,而是在互聯網瀏覽器發回的結果...

這也是這種情況,如果用戶不使用鍵長按,而且還採用了按鈕來回到自己的發射器,然後使用長按按鈕回到我的應用程序。在這種情況下返回堆疊更是雪上加霜:

首頁發射器 - >活動B

所以,當我在活動B做finish(),用戶回來到他們的主屏幕和他們永遠無法回到活動除了如果他們從應用程序抽屜中再次啓動應用程序。

有什麼辦法來實現在這種情況下多任務的工作?無論用戶在這兩者之間打開什麼,活動B都需要始終將結果返回給活動A.

+0

顯示您使用明星代碼t活動B.聽起來你可能會錯誤地設置一些標誌。 – kabuko

+0

問題可能是我沒有設置任何標誌,但我不知道有什麼要設置的標記,也許你可以點我是正確的。這裏是我的代碼: '意圖I =新意圖(ActivityA.this,ActivityB.class); \t i.setAction(「android.intent.action.PICK」); startActivityForResult(i,0);' – Gix

回答

1

好的。經過長時間的研究和嘗試各種各樣的事情,這裏是解決問題的辦法。希望這有助於其他人......

的解決方案是非常簡單的,簡單的,在AndroidManifest.xml

設置android:launchMode="singleTask"發生的活性

設置android:noHistory="true"的活動B

這樣活動B從堆棧中刪除,如果我們去一個像瀏覽器或退出到主屏幕另一個應用程序,所以當我們回到我們的應用程序,我們回到活動A.