2011-06-01 19 views
7

我有一個Singleton類,與我的應用程序的其中一個活動一起使用。爲什麼單身人士班活下去活動退出?

當我退出活動 - 這將我帶回菜單活動 - 然後重新打開活動時,我發現當我嘗試訪問單例時,它仍然是相同的。 當然,它應該已經與活動一起銷燬?

我在這裏看到了問題:living singleton, when activity end 但不能完全按照他們的意思。

當我按下設備上的返回按鈕(或在活動本身內使用完成)時,該活動是否保持活動以供將來使用?如果是這樣,那就可以解釋它。

回答

12

當然,它應該已經與活動一起銷燬?

當我按下設備上的返回按鈕(或者活動本身內使用結束)是活動更讓供日後使用?

該活動不是。 處理是。單身人士是虛擬機的一部分,只要過程一直存在就會生活。退出最後一項活動並不會立即終止這個過程,所以單身人士至少會持續一段時間。

Android將最終終止該進程以釋放其他應用程序的內存。它的執行速度取決於用戶在做什麼,安裝了什麼應用程序,月亮的相位等。

+0

這是否意味着如果我從我的應用程序中的2個不同活動中調用相同的單例類那麼他們會得到一樣的?我認爲這是在活動級別。 – theblitz 2011-06-01 21:53:29

+0

單例概念定義了一次只能有一個類的單個對象實例,所以是的,他們會得到相同的實例,除非活動是由於系統終止第一個虛擬機而在不同的虛擬機中啓動的。 – 2011-06-01 21:58:31

+0

所以最好的辦法是在退出Activity時「手動」銷燬單身人士。 – theblitz 2011-06-01 22:06:04

相關問題