2012-12-21 23 views
0

Android文檔提供了一個看似完整的Tasks and Back Stack的描述,但我無法找到以下問題的答案:當它們的任務(之前由系統殺死)將要執行的活動恢復(重新創建)再次成爲前景。例如,如果任務的活動A→B→C並在後臺死亡,那麼當用戶切換回它時,在所有活動中的事件調用順序爲onCreateonRestoreInstanceState行?我們能否理所當然地認爲A在B之前總是完全恢復,B在C之前完全恢復?用於恢復一堆活動的順序是什麼?

問題來自Google Play的錯誤日誌,這讓我懷疑在調用子活動期間主要活動尚未恢復。

回答

0

作爲基於某些測試的簡短(自我)回答,我報告活動恢復的順序是從堆棧的頂部到底部,即按照與活動的初始順序相反的順序已經創建。在這個問題的例子中,它將是C→B→A。

最重要的是,只有一個頂級活動一次被恢復,而不是整個棧(這會更直觀和一致的,恕我直言)。只有在用戶關閉頂級活動並且下一個活動即將成爲新頂級活動之後,該單一活動纔會恢復,等等。

對於每個活動,按照文檔執行onCreate,onStart,onRestoreInstanceState的順序。