2012-08-01 51 views
0

我需要有一個int數組,其中包含多個Integer值。當用戶終止應用程序時,該數組不應該清除。我打算用這個:數組中當關閉應用程序時不會從內存中清除數組

  1. 檢查這個數組的最後一個項目
  2. 如果這個數組中的最後一個項目是6,加7到下一個項目

在用戶退出應用程序後,該陣列不能被刪除,我需要這個來生成唯一ID的「子集」。

到目前爲止,我已經嘗試使用SQLite數據庫來保存這些信息,但我認爲這是以複雜的方式來做到這一點。

有什麼建議嗎?

+5

閱讀關於SharedPreferences!在這裏有很多問題,所以你可能會找到解決方案。 – theAlse 2012-08-01 12:27:15

回答

2

那麼,你可以使用共享偏好,這是最好的一個膚淺。但問題是你不能存儲數組對象。只能存儲基元類型。

但這裏仍然是一個使用JsonArray來做同樣的例子。但是,雖然這不是一個忠告。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
JSONArray arr = new JSONArray(); 
arr.put(12); 
arr.put(-6); 
prefs.edit().putString("key", arr.toString()); 
prefs.edit().commit(); 
// read 
try { 
    arr = new JSONArray(prefs.getString("key", "{}")); 
    arr.getInt(1); // -6 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

兩者形式here.

+0

正確!!這會導致解決方案..化妝品!! !! – 2012-08-01 12:31:20

+0

這將拋出一個異常說:JSONObject不能轉換爲JSONArray – 2012-08-01 12:39:35

2

嘗試序列化陣列並將其存儲在文件中。 (您可以使用自己的邏輯或使用其他自定義庫,例如GSON用於此目的) 下次啓動應用程序時,可以取文件內容 並重新構建陣列。

相關問題