Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该使用静态字段还是共享引用来存储自定义对象?_Java_Android_Static_Sharedpreferences - Fatal编程技术网

Java 我应该使用静态字段还是共享引用来存储自定义对象?

Java 我应该使用静态字段还是共享引用来存储自定义对象?,java,android,static,sharedpreferences,Java,Android,Static,Sharedpreferences,我正在开发一个电子商务应用程序,我必须将产品列表存储到购物车中 首先,我使用静态字段来存储自定义对象(产品)的列表,但问题是当应用程序在后台运行一段时间后,静态字段会丢失它的数据 然后,我决定将产品存储到SharedReferences,但问题是它不接受自定义对象,所以首先我用Gson对其进行序列化,然后存储它,当我需要它时,我反序列化它 使用SharedReferences的问题是我必须做一些额外的工作(序列化和反序列化)。我该怎么办?是否有其他简单的方法全局存储数据。更喜欢共享引用而不是静态

我正在开发一个电子商务应用程序,我必须将产品列表存储到购物车中

首先,我使用静态字段来存储自定义对象(产品)的列表,但问题是当应用程序在后台运行一段时间后,静态字段会丢失它的数据

然后,我决定将产品存储到
SharedReferences
,但问题是它不接受自定义对象,所以首先我用
Gson
对其进行序列化,然后存储它,当我需要它时,我反序列化它


使用
SharedReferences
的问题是我必须做一些额外的工作(序列化和反序列化)。我该怎么办?是否有其他简单的方法全局存储数据。

更喜欢共享引用而不是静态字段。但您可以使用SQLite、ActiveAndroid或任何其他ORM来存储数据

ActiveAndroid相对容易实现和处理数据。
ActiveAndroid:

不,如果您想一次保存完整的对象,您必须进行序列化和反序列化。另一个选项是将每个对象单独保存为共享首选项中的字符串。保存购物车项目的最佳做法是什么?您已经在这样做了