2012-07-03 63 views
-2

在我的應用程序,我有一個單獨的類與所有活動通信,並擁有所有的應用數據。 突然間,對象已經開始變爲空。 這似乎是發生當我改變頂層活動(使用意圖)。 有一個簡單的方法確保只要我的活動是可見的對象仍然存在。如何使Android的Singleton對象持久

回答

0

如果是我,我會用Service而不是單以管理跨活動共享應用程序數據。它將更加強大。

更多信息,請參見Services Developer Guide

+0

我很新到Android。在我的場景中,我正在製作基於點擊的遊戲。因此在每個輸入上,單例對象都會進行一些處理,併爲用戶提供新的活動。我如何與服務做到這一點。你也可以給我鏈接閱讀服務。 – chandings

+0

我添加了一些鏈接。 –

+0

感謝您的時間。 – chandings

0

您必須使用單錯了,一個單獨的對象應該是應用生命週期的持續時間期間內有效。此應用程序中的活動是否被重新創建和銷燬並不重要。但是,如果你的單例引用了活動(例如活動上下文,活動變量像小部件),那麼在某些時候,這些變量/上下文可能是無效的,即使單例對象本身仍然有效。

1

我認爲一個新的頂級活動是在新的進程(在http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle字裏行間)製成。

Android是更可能殺死生活在背景中的活動的過程中,以及包括當一個頂層活動降到後面另一個。

我想一個更好的解決辦法可能是讓你的單身透明初始化本身,如果空,裝車,如果需要保存從磁盤的任何狀態(相當標準的單模式)。無法通過新舊活動中的單個實例解決您的問題。

編輯:我不相信,一個服務是要走的路。服務用於在電話背景下進行活動,而您所談論的是數據存儲和檢索。我認爲,最自然的做法是讓每個活動對於它是否是第一個活動都很有用。