3

当我的用户关闭我的应用程序时,我需要保存ArrayList<>一个自定义项。Object我可以在 logcat 中看到它在我使用时“保存”它,但是outBundle当我使用Bundle.putParcelableArrayListGenymotion 或物理手机再次启动应用程序时它不会恢复它。如果这会有所帮助,我也不能出于任何原因将其final String转换为。Serializable

static final String tasks = "tasks";

outState.putParcelableArrayList(tasks, taskList); //this works

taskList = savedInstanceState.getParcelableArrayList(tasks); //this doesn't

我试过onCreate(savedInstanceState != null)声明和 in调用它onRestoreInstanceState。我在这里遗漏了一些明显的东西吗?

编辑:这是我想在 logCat 中看到的:

outState.putParcelableArrayList(tasks, taskList);
        System.out.println("saved: " + taskList);

这就是我得到的:

04-15 09:24:27.513    1791-1791/com.aau.uni.mea2015.a317b.cueless I/System.out﹕ saved: [this is a task
04-15 09:24:27.513    1791-1791/com.aau.uni.mea2015.a317b.cueless I/System.out﹕ 0 - 1 minutter, 1 underopgave(r)]

onRestore 或 onCreate 没有 logcat 输出,因为它从不“播放”它。/编辑

4

1 回答 1

1

从我在这里读到的“......当我的用户关闭我的应用程序时我需要保存它......但是当我再次启动应用程序时它不会恢复它,无论是使用 Genymotion 还是物理手机。” 听起来您正在手动关闭应用程序。

这种方式onRestoreInstanceState()不会被调用。仅当活动已被操作系统杀死时才调用它。

检查此帖子此 SO 帖子

于 2015-04-15T09:35:49.587 回答