2013-08-17 25 views
0

Android中有沒有一種方法可以在RAM中保留一個值,所以在設備啓動時它可用於應用程序?如何在Android應用程序啓動之間保持RAM值?

因此,應用程序會在第一次啓動時存儲值,然後直到設備重新啓動,即使應用程序已關閉/重新啓動,放到後臺/恢復,應用程序仍可以讀取該值。該值不能保存到閃存中。

p.s.如果通過設置強制停止應用程序,則可以丟失該數據。

+0

它被稱爲SharedPreferences! – Pavlos

+0

不,不是。見下文。 –

回答

0

我不這麼認爲。您應該改爲使用SharedPreferences

+0

SharedPreferences不符合以下要求:1)它們不將值存儲在RAM中,而是存儲在閃存上2)它們不僅在應用程序啓動之間而且在重新啓動之間都保存數據。 我嘗試過的其中一個選項 - 將該值存儲在粘性服務中。但是,仍然無法可靠地保持它在沒有重新啓動的情況下運行(即丟失數據)。 –

0

您可以將數據保存到onSaveInstanceState()的捆綁包中並將其恢復到onCreate()。只要確保在按下返回時不要終止應用程序 - 將其停止而不是

+0

onSaveInstanceState()屬於Activity的生命週期,而不是Application。我有很多活動,不知道如何同步它們。此外,應用程序可以在低內存條件下被殺死。在這種情況下,將保存savedInstanceState? –

+0

是的,實例狀態將在應用程序被系統殺死時保存,並在正常退出時不保存。你可能想檢查http://developer.android.com/training/basics/activity-lifecycle/recreating.html – msh

+0

謝謝,msh。我很想加快這個概念,這正是我在這裏發佈這個問題的原因 - 它不適用於我試圖實現的目標。我無法找到任何標準機制。然而,涉及在後臺運行服務並在其中緩存數據的黑客行爲,以及將其另存爲實例狀態似乎仍然有效。如果沒有人提出更好的建議,我會在這裏發佈解決方案。 –

相關問題