我有一个带有自定义对象的ArrayList . 每个自定义对象都包含各种字符串和数字 . 即使用户离开活动然后想要稍后返回,我也需要数组停留,但是在应用程序完全关闭后我不需要数组可用 . 我通过使用SharedPreferences以这种方式保存了很多其他对象,但我无法弄清楚如何以这种方式保存整个数组 . 这可能吗?也许SharedPreferences不是这样的方式?有更简单的方法吗?
您可以使用 ObjectInputStream 和 ObjectOutputStream 序列化 ArrayList ,因为您的所有对象似乎都是可序列化的 .
ObjectInputStream
ObjectOutputStream
ArrayList
序列化在这里描述:http://java.sun.com/developer/technicalArticles/Programming/serialization/
在Android中,保存此类文件的推荐位置是使用 Context.getCacheDir() 指定的目录,因此,在您的Activity上,只需调用 this.getCacheDir() 即可获取它,然后构建一个唯一的文件名,输入ObjectStream对象 .
Context.getCacheDir()
this.getCacheDir()
如果您在应用程序被杀后不需要它,也许您可以尝试使用onSaveInstanceState()和onRestoreInstanceState() .
Here是一个简短的例子,展示了如何使用它!
2 回答
您可以使用
ObjectInputStream
和ObjectOutputStream
序列化ArrayList
,因为您的所有对象似乎都是可序列化的 .序列化在这里描述:http://java.sun.com/developer/technicalArticles/Programming/serialization/
在Android中,保存此类文件的推荐位置是使用
Context.getCacheDir()
指定的目录,因此,在您的Activity上,只需调用this.getCacheDir()
即可获取它,然后构建一个唯一的文件名,输入ObjectStream对象 .如果您在应用程序被杀后不需要它,也许您可以尝试使用onSaveInstanceState()和onRestoreInstanceState() .
Here是一个简短的例子,展示了如何使用它!