2012-05-16 26 views
2

我有一个ArrayList与自定义对象。每个自定义对象都包含各种字符串和数字。即使用户离开活动并希望稍后再回来,我也需要数组来坚持,但是在完全关闭应用程序后,我不需要该数组。我通过使用SharedPreferences以这种方式保存了很多其他对象,但我无法弄清楚如何以这种方式保存整个数组。这可能吗?也许SharedPreferences不是这样的呢?有一个更简单的方法吗?如何在没有数据库的情况下永久保存arrayList,以及在Android中没有Shared偏好?

+0

我相信使用SharedPreference比其他任何方法都简单。 –

+0

我认为你应该使用database.see这个共享的pref只用于促销数据类型http://developer.android.com/guide/topics/data/data-storage.html#pref –

+0

是的..真的..但所有对象根据来自Web服务的响应动态传递....因此,对于我来说,管理共享首选项以动态传输数据太困难了......是否可以将它们保存在应用程序级别?如果是的话那怎么样? – Rushi

回答

1

您可以使用ObjectInputStreamObjectOutputStream来序列化ArrayList,因为您的所有对象都显示为可序列化的。

序列化描述如下:http://java.sun.com/developer/technicalArticles/Programming/serialization/

在Android中,推荐的地方保存这些文件是使用由Context.getCacheDir()指定的目录的话,你的活动,你只需拨打this.getCacheDir()得到它,然后建立一个唯一的文件提供给ObjectStream对象的名称。

+0

不推荐在Android平台上进行序列化,因为它执行不必要的过程,因此速度很慢。 Parcelable是Android上Serialization的继承者 –

+0

我同意,Parcelable会更符合平台。然而,这样做更为复杂(请参阅http://stackoverflow.com/questions/1626667/how-to-use-parcel-in-android),除非他每秒要做数百次呼叫,否则我怀疑任何人会看到表现上的差异,但我承认我从未检查过这个假设。 –

相关问题