我有一个ArrayList与自定义对象。每个自定义对象都包含各种字符串和数字。即使用户离开活动并希望稍后再回来,我也需要数组来坚持,但是在完全关闭应用程序后,我不需要该数组。我通过使用SharedPreferences以这种方式保存了很多其他对象,但我无法弄清楚如何以这种方式保存整个数组。这可能吗?也许SharedPreferences不是这样的呢?有一个更简单的方法吗?如何在没有数据库的情况下永久保存arrayList,以及在Android中没有Shared偏好?
回答
您可以使用ObjectInputStream
和ObjectOutputStream
来序列化ArrayList
,因为您的所有对象都显示为可序列化的。
序列化描述如下:http://java.sun.com/developer/technicalArticles/Programming/serialization/
在Android中,推荐的地方保存这些文件是使用由Context.getCacheDir()
指定的目录的话,你的活动,你只需拨打this.getCacheDir()
得到它,然后建立一个唯一的文件提供给ObjectStream对象的名称。
不推荐在Android平台上进行序列化,因为它执行不必要的过程,因此速度很慢。 Parcelable是Android上Serialization的继承者 –
我同意,Parcelable会更符合平台。然而,这样做更为复杂(请参阅http://stackoverflow.com/questions/1626667/how-to-use-parcel-in-android),除非他每秒要做数百次呼叫,否则我怀疑任何人会看到表现上的差异,但我承认我从未检查过这个假设。 –
如果您在应用程序被终止后不需要它,也许您可以尝试使用onSaveInstanceState()和onRestoreInstanceState()。
Here是一个简短的例子,展示如何使用它!
- 1. 在没有数据库的情况下永久保存php变量
- 2. 如何在没有sudo的情况下永久运行Ec2
- 3. 如何在没有任何数据库的情况下保存我的datagridview?
- 4. android永久保存用户偏好?
- 5. 有没有办法在没有数据库的情况下将数据保存在Java EE应用程序中?
- 6. 如何在没有数据库的情况下收集数据
- 7. 数据没有被保存在ArrayList中
- 8. 如何在没有webservice的情况下访问数据库?
- 9. 如何在没有eval()的情况下存储逻辑数据?
- 10. Docker:容器如何在容器中没有卷的情况下保存数据?
- 11. 在没有ORM的情况下在Python中使用数据库
- 12. 如何在没有背景的情况下保存图形?
- 13. 在有或没有索引的情况下复制数据库?
- 14. 有没有办法永久保存游戏数据?
- 15. 如何让php在没有cron的情况下永远工作?
- 16. android如何在没有年份的情况下存储日期?
- 17. 如何在没有保存键的情况下在PHP中合并数组?
- 18. 如何在没有集合的情况下洗牌ArrayList
- 19. 在没有文本文件的情况下将数据保存在Python中?
- 20. 在没有数据库调用的情况下获取持久实体引用
- 21. 如何在没有Django数据库的情况下存储通信对象?
- 22. 如何在没有数据库(PHP)的情况下存储密码?
- 23. 在没有参考的情况下保留数据
- 24. 可以在没有web.config的情况下在sqlCacheDependency集合中添加数据库
- 25. OutputCache - 只有在GET中没有参数的情况下缓存
- 26. 如何在没有编程的情况下在android中查看(查看)数据库中存储的值
- 27. 为什么在以下情况下没有数据竞争?
- 28. 如何在没有数据库的情况下具有导航属性
- 29. 如何在没有数据的情况下创建mysql数据库基线
- 30. 如何在没有DataSnapshot的情况下从Firebase数据库检索数据? #AskFirebase
我相信使用SharedPreference比其他任何方法都简单。 –
我认为你应该使用database.see这个共享的pref只用于促销数据类型http://developer.android.com/guide/topics/data/data-storage.html#pref –
是的..真的..但所有对象根据来自Web服务的响应动态传递....因此,对于我来说,管理共享首选项以动态传输数据太困难了......是否可以将它们保存在应用程序级别?如果是的话那怎么样? – Rushi