Android-保存活动状态和列表视图项

Android-保存活动状态和列表视图项,android,listview,android-activity,android-listview,Android,Listview,Android Activity,Android Listview,我目前有一个由用户自行填充的listview。我希望这样,当用户离开活动并返回时,用户添加的所有内容仍在listview中。我一直在读有关onSaveInstanceState的文章,但我不知道这样做是否正确。任何帮助都将不胜感激。谢谢 这并不完全是你所需要的;OnSaveInstanceState在系统终止活动以回收内存不足的资源之前保存实例,而不是在用户明确退出该实例时 如果您希望保存活动状态,以便用户每次输入时都保持不变,则必须将数据保存在文件/共享首选项/使用内容提供商上。 如果您只想保

我目前有一个由用户自行填充的listview。我希望这样,当用户离开活动并返回时,用户添加的所有内容仍在listview中。我一直在读有关onSaveInstanceState的文章,但我不知道这样做是否正确。任何帮助都将不胜感激。谢谢

这并不完全是你所需要的;OnSaveInstanceState在系统终止活动以回收内存不足的资源之前保存实例,而不是在用户明确退出该实例时

如果您希望保存活动状态,以便用户每次输入时都保持不变,则必须将数据保存在文件/共享首选项/使用内容提供商上。
如果您只想保存单个listview项的本地数据,我建议您使用共享首选项,因为它非常简单直观。阅读它们。

我假设如果用户正在填充一些数据,那么这些数据在SQLite、cloud等的某个地方有一个存储。。。。我建议积极地存储用户输入的任何内容,即在单击“新建”并输入新列表项后,立即推送到数据库并刷新列表。因此,当调用应用程序onResume时,您可以从其源抓取数据并重新填充列表视图。暂时保存到SharedReferences对于项目列表来说似乎很麻烦。

如果活动在离开和返回之间没有被销毁,那么你的数据应该在用户留下的地方,除非你在resume中重新初始化。然而,你不能指望这一点,因为Android可能会在需要时释放资源,而非运行的活动可能会成为这种行为的受害者

因此,正如前面提到的,您应该将数据保存到持久性存储中。如果只是为了这个活动,而且只是少量的数据,那么SharedReferences是一个很好且简单的解决方案。在onPause中保存,在onResume中加载,只有当手机因您的活动提前停止时,您才会丢失数据

我不建议为此使用文件,但如果您的数据必须通过不同的视图访问、处理、排序、过滤等,那么您可能会想到SQLite