2017-06-09 57 views
0

我想知道如何設置一個在關閉應用程序後保持不變的變量。在這種情況下,我不想使用SharedPreference或DataBase。背景中的Android變量

在此先感謝。

+2

好奇,爲什麼你不想使用SharedPreferences或數據庫?唯一的其他選擇是將變量值寫入文件,然後在應用程序重新打開時再次讀取它。 – padonald

+0

如果「時間助推器」處於活動狀態,此變量將用於保存,另一個具有此類時間助推器的應用程序未使用共享偏好設置..至少我無法在系統文件中找到這樣的文件夾。那麼,因爲它似乎是最好的方式,我將使用共享首選項。非常感謝:D – Tester

回答

2

如果應用程序關閉,任何變量在下一次啓動時都會很長時間。

保存數據的唯一方法是使用某種類型的持久性,最常用的是SharedPreferences

您也可以寫入文件,將數據發送到服務器(並在下次啓動時重新加載)或使用數據庫。


您還可以使用您繼續在後臺運行的Service,即讓你的價值觀。但是你不能保證系統何時/如何阻止它,他們會像以前一樣丟失—再次—。


如果你想保留一些價值,你需要堅持下去。

+0

非常感謝您的回答:)但我怎麼能堅持下去呢? – Tester

2

變量忍受應用程序的生命週期。當用戶關閉一個應用程序,並且該應用程序未在後臺運行服務時,所有內容都將被刪除。在某些情況下(但這有一點機會),如果應用程序再次重新啓動,則可以順便讀取以前會話的靜態變量,但這不是正確的行爲。

有3種方法來保存您的數據。

  1. 寫入文件:您可以創建txt,json或您希望的任何其他格式的文件,並在運行時從這些文件中讀取以獲取前一個會話的值。我不喜歡寫入文件來保存數據。如果你不知道如何使用數據庫並且想弄亂它,你可以使用它。
  2. 共享首選項:這通常用於保存帶有名稱和值對的設置文件。
  3. 寫入數據庫:將數據寫入數據庫。 SQLite和Realm數據庫是最流行的。
+0

非常感謝您的回答:)如果與「堅持」大衛Medenjak建議的選項將無法正常工作,我會與共享首選項:) – Tester