java - 关闭应用程序时数组不会从内存中清除

标签 java android

我需要一个 int 数组来保存多个 Integer 值。当用户终止应用程序时,该数组不应该被清除。我将用它做什么:

  1. 检查该数组的最后一项
  2. 如果此数组中的最后一项是 6,则将 7 添加到数组中的下一项

用户退出应用程序后无法删除数组,我需要它来生成唯一 ID 的“子集”。

到目前为止,我已经尝试使用 SQLite 数据库来保存此信息,但我认为这是一种复杂的方法。

有什么建议吗?

最佳答案

嗯,你可以使用共享偏好,最好是肤色较浅的。但问题是你不能存储数组对象。只能存储原始类型。

但这里仍然有一个使用 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.

关于java - 关闭应用程序时数组不会从内存中清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11759171/

相关文章:

java - Hibernate一对多映射注释问题

java - JTidy 无法处理脚本元素内的 HTML 标签

java - NotificationManagerCompat 中的 (android.content.Context) 无法应用于

Java 8 : Cannot invoke orElseThrow() on the primitive type void

java - 如何在java中将一个项目的常量值引用到另一个项目

java - 空对象模式是否违反了接口(interface)隔离原则?

android - cocos2d-x CCDirector,暂停/恢复 vs stopAnimation/startAnimation

Android FragmentTabHost 添加水平滚动

android - ListView ImageButton 设置铃声

android - onLayoutChange() 调用次数过多