Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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 - Fatal编程技术网

Java 如何在活动、序列化或单实例之间共享对象?

Java 如何在活动、序列化或单实例之间共享对象?,java,android,Java,Android,我在数据模型类中有某些数据,希望将此数据/对象共享给其他活动。单个实例可能是一个不错的选择,但希望完成我以前的活动,因此将得到空指针。请建议最好的方法?最好的做法是使用intent对象,将包裹或序列化数据放入他的附加文件中 静态是危险的,因为您必须随时准备好应用程序将被终止和恢复的情况 使用序列化的最佳方法是,SingleInstance在这里不起作用,因为您必须完成活动 Intent intent = new Intent(this, B.class); ArrayList<String

我在数据模型类中有某些数据,希望将此数据/对象共享给其他活动。单个实例可能是一个不错的选择,但希望完成我以前的活动,因此将得到空指针。请建议最好的方法?

最好的做法是使用intent对象,将包裹或序列化数据放入他的附加文件中


静态是危险的,因为您必须随时准备好应用程序将被终止和恢复的情况

使用序列化的最佳方法是,SingleInstance在这里不起作用,因为您必须完成活动

Intent intent = new Intent(this, B.class);
ArrayList<String> data = new ArrayList<String>();
arrays.add("testing");
intent.putExtra("arrayList", data);
startActivity(intent);
Intent Intent=新的Intent(本,B类);
ArrayList数据=新的ArrayList();
添加(“测试”);
intent.putExtra(“arrayList”,数据);
星触觉(意向);
您可以使用您的对象而不是字符串,另一方面,您可以使用它进行检索

ArrayList<String> arrayList =(ArrayList<String>) getIntent().getSerializableExtra("arrayList");
ArrayList ArrayList=(ArrayList)getIntent().getSerializableExtra(“ArrayList”);

只需在变量之前使用static关键字。并使用classname.variable访问它-name@manish这不是一个好的做法,如果我的活动被终止,所有静态数据也将无法工作。若对象存在,静态数据将保留。如果,我错了,请提供更正。在我的情况下,当应用程序运行时,所有静态数据都将处于活动状态,这不取决于活动LifecycleEyes,如果数据不属于活动,则可能是这种情况。如果保存数据的活动实例被终止,静态数据将如何处于活动状态。可以使用静态类来保存数据,但它不是必需的,并且占用了足够的内存。是否有任何更正?那么您的数据来自活动(输入)并与活动生命周期相关?