关闭应用程序时,内存中没有清除的数组

时间:2012-08-01 12:25:46

标签: java android

我需要一个int数组,其中包含多个Integer值。当用户终止应用程序时,此数组不应该清除。我打算用它:

  1. 检查此阵列的最后一项
  2. 如果此数组中的最后一项是6,则将7添加到数组中的下一项
  3. 用户退出应用程序后无法删除该数组,我需要这个来生成唯一ID的“子集”。

    到目前为止,我已尝试使用SQLite数据库来保存此信息,但我认为这是以复杂的方式来实现的。

    有什么建议吗?

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分:2)

尝试序列化数组并将其存储在File中。 (您可以使用自己的逻辑或使用其他自定义库,如GSON用于此目的) 下次启动应用程序时,您可以获取文件内容 并重新构建阵列。