在Android中,如果没有数据库和共享首选项,如何永久保存arrayList?

在Android中,如果没有数据库和共享首选项,如何永久保存arrayList?,android,sharedpreferences,Android,Sharedpreferences,我有一个带有自定义对象的ArrayList。每个自定义对象都包含各种字符串和数字。即使用户离开活动,然后想稍后再回来,我也需要阵列保持不变,但是在应用程序完全关闭后,我不需要阵列可用。我使用SharedReferences以这种方式保存了许多其他对象,但我不知道如何以这种方式保存整个数组。这可能吗?也许共享参考不是解决这个问题的方法?有更简单的方法吗?如果在应用程序终止后不需要它,您可以尝试使用和 这是一个演示如何使用它的简短示例 您可以使用ObjectInputStream和ObjectOut

我有一个带有自定义对象的ArrayList。每个自定义对象都包含各种字符串和数字。即使用户离开活动,然后想稍后再回来,我也需要阵列保持不变,但是在应用程序完全关闭后,我不需要阵列可用。我使用SharedReferences以这种方式保存了许多其他对象,但我不知道如何以这种方式保存整个数组。这可能吗?也许共享参考不是解决这个问题的方法?有更简单的方法吗?

如果在应用程序终止后不需要它,您可以尝试使用和


这是一个演示如何使用它的简短示例

您可以使用
ObjectInputStream
ObjectOutputStream
序列化
ArrayList
,因为您的所有对象都可以序列化

下面介绍序列化:


在Android中,建议保存此类文件的位置是使用
Context.getCacheDir()
指定的目录,因此,在您的活动中,只需调用
this.getCacheDir()
获取它,然后构建一个唯一的文件名,供您馈送到ObjectStream对象。

我相信使用SharedReference是比其他任何方法都简单的方法。我认为您应该使用数据库。查看此shared pref仅适用于促销数据类型是的..没错..但所有对象都是根据web响应动态生成的服务…所以对我来说,管理动态数据的共享首选项太难了…有可能在应用程序级别保存它们吗???如果是,那么怎么做???它要么是
SharedReferences
SQLite
,要么是一个纺织物,不管它是原始文本还是XML/jSON之类的格式。不建议在Android平台上使用序列化,因为它执行不必要的过程,因此速度较慢。Parcelable是AndroidI上序列化的继承者同意,Parcelable将更符合平台。然而,这更为复杂,除非他每秒要打几百个电话,否则我怀疑有人会看到性能上的差异,但我承认我从未验证过这个假设。