现在我有三个不同的类来保存数据。他们习惯于跟踪成绩。它们是类,类型和赋值。它们都是可以实现的。
现在,当我将一个Class对象传递给表示包含类型列表的Activity时,如果类型列表已包含Class对象,则它可以正常工作。但是,当启动该活动并向其添加数据时,它不会将其添加到Class对象,这样当我回溯到我的Mainactivity然后单击相同的Class对象时,我添加的所有数据其他活动消失了。
基本上,我要问的是,如果将对象传递给另一个活动,它是否会引用内存中的同一个对象?如果没有,我该怎么做,以便我在其他活动中添加的信息包含在我在MainActivity中单击的对象中,该对象表示类的列表。
答案 0 :(得分:0)
基本上,我要问的是,如果将对象传递给另一个活动,它是否会引用内存中的同一个对象?
没有。当您通过Parcelable
传递Intent
时,会发生运行时序列化/反序列化。它基本上意味着使用复制的数据重新创建对象。
这也是为什么Parcelable
(或其低级别表示Parcel
)被用作Android的Binder驱动程序中的基本数据结构以启用进程间通信的原因。< / p>
如果没有,如何
由于您的Class
类实现了Parcelable
,您可以通过主startAcitivtyForResult
中的onActivityResult
和Activity
轻松返回数据的刷新副本。您可以从this developer guide了解更多信息。
当然,退出活动时,您始终可以将数据保留在内存或文件系统中,并在主Activity
恢复时从持久性重新加载。