我有ArrayList<>
个自定义Object
我需要在用户关闭我的应用时保存。我可以在logcat中看到,当我使用outBundle
时,它会将其“保存”到Bundle.putParcelableArrayList
,但是当我再次使用Genymotion或物理手机启动应用程序时,它无法恢复它。如果这会有所帮助,我也无法将final String
转换为Serializable
。
static final String tasks = "tasks";
outState.putParcelableArrayList(tasks, taskList); //this works
taskList = savedInstanceState.getParcelableArrayList(tasks); //this doesn't
我尝试在onCreate
中使用(savedInstanceState != null)
语句并在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输出,因为它永远不会“播放”它。 /编辑
答案 0 :(得分:1)
从我在这里读到的&#34; ...当我的用户关闭我的应用程序时,我需要保存。 ...但是当我再次启动应用程序时,无论是使用Genymotion还是物理手机,它都无法恢复。&#34; 听起来好像是在手动关闭应用程序。
这种方式onRestoreInstanceState()
不会被调用。只有在活动被操作系统杀死时才会调用它。
同时检查this post或this SO post。