2014-08-31 52 views
0

我試圖瞭解Android任務。假設你從啓動圖標開始一個活動X,並從該活動開始一個來自不同應用程序的新活動Y.您有一個由X和Y活動組成的任務。現在假設您按下主頁按鈕並再次單擊X的啓動圖標。 Android文檔說,默認情況下,系統應該像以前一樣顯示任務,Y在上面。試圖瞭解Android任務

然而,通過在真實設備上進行一些實驗,您會發現這不是發生在很多時間的事情。假設X是一個電子郵件應用程序,並且您在不同的應用程序Y中查看來自電子郵件的任何內容(例如在圖庫中打開照片,在Quickoffice中打開PDF文檔,在Chrome中打開網頁等),您會發現如果單擊然後X的發射圖標,你實際上再次看到X.有時,顯示內容的活動會移動到不同的啓動圖標上,但就我所知,通常它完全被Android系統遺忘。

這就是如果X是GMail,Yahoo Mail或Google Drive的情況。

我的問題是什麼導致Y被拋棄的任務?這是X做的事情還是Y做的事情?如果它是X所做的事情,那麼作爲Y的開發者,你有什麼可以做的,以防止它被Android系統遺忘嗎?謝謝

回答

0

這是關於taskAffinity所有關於here的文檔。爲了更清楚,你可以閱讀這個答案https://stackoverflow.com/a/17873524/403255

+0

謝謝。你鏈接到的答案,特別是幻燈片放映非常好。他們非常詳細地解釋了用於決定一個意圖是否將在與發送者相同的任務中啓動新活動或新的活動,以及它是否會創建新實例或通過onNewIntent()等路由的複雜規則。但是除非我錯過了一些東西,否則他們不會說爲什麼按下主頁按鈕然後點擊發布圖標經常會殺死一個活動。當然,單擊主屏幕上的啓動圖標應該簡單地將任務恢復到按住主界面之前的狀態? – 2014-08-31 15:30:58

+0

你能否詳細解釋一下'點擊發射圖標經常殺死一個活動'? – 2014-09-01 03:31:41

+0

這裏是我詳細解釋我遇到的問題的地方。有一個可用於此的賞金! http://stackoverflow.com/q/25518197/3973077 – 2014-09-01 06:55:34