我需要一个int
包含多个Integer
值的数组。当用户终止应用程序时,这个数组不应该被清除。我打算用它来做什么:
- 检查此数组的最后一项
- 如果此数组中的最后一项为 6,则将 7 添加到数组中的下一项
用户退出应用程序后无法删除该数组,我需要它来生成唯一 ID 的“子集”。
到目前为止,我已经尝试使用SQLite
数据库来保存这些信息,但我认为这是一种复杂的方法。
有什么建议么?
尝试序列化数组并将其存储在文件中。(您可以使用自己的逻辑或使用其他类似GSON
的自定义库)下次启动应用程序时,您可以获取文件内容并重建数组。
好吧,您可以使用共享偏好,最好是肤色较浅。但问题是您不能存储数组对象。只能存储原始类型。
但这里仍然是一个使用 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();
}
在这里形成。