将数据添加到传递给另一个活动的parcelable对象

时间:2015-12-29 02:51:41

标签: java android

现在我有三个不同的类来保存数据。他们习惯于跟踪成绩。它们是类,类型和赋值。它们都是可以实现的。

现在,当我将一个Class对象传递给表示包含类型列表的Activity时,如果类型列表已包含Class对象,则它可以正常工作。但是,当启动该活动并向其添加数据时,它不会将其添加到Class对象,这样当我回溯到我的Mainactivity然后单击相同的Class对象时,我添加的所有数据其他活动消失了。

基本上,我要问的是,如果将对象传递给另一个活动,它是否会引用内存中的同一个对象?如果没有,我该怎么做,以便我在其他活动中添加的信息包含在我在MainActivity中单击的对象中,该对象表示类的列表。

1 个答案:

答案 0 :(得分:0)

  

基本上,我要问的是,如果将对象传递给另一个活动,它是否会引用内存中的同一个对象?

没有。当您通过Parcelable传递Intent时,会发生运行时序列化/反序列化。它基本上意味着使用复制的数据重新创建对象。

这也是为什么Parcelable(或其低级别表示Parcel)被用作Android的Binder驱动程序中的基本数据结构以启用进程间通信的原因。< / p>

  

如果没有,如何

由于您的Class类实现了Parcelable,您可以通过主startAcitivtyForResult中的onActivityResultActivity轻松返回数据的刷新副本。您可以从this developer guide了解更多信息。

当然,退出活动时,您始终可以将数据保留在内存或文件系统中,并在主Activity恢复时从持久性重新加载。