其他分享
首页 > 其他分享> > 将对象从活动传递到片段是通过引用传递

将对象从活动传递到片段是通过引用传递

作者:互联网

当我们使用Serializable和Parcelable在活动之间传递对象时,会将对象的副本/值发送到接收活动(典型的按值传递行为).

但是为什么当我们将对象作为Bundle在Bundle中传递给Fragments时,由于某种原因,它们是作为对象的引用而不是对象的副本/值发送的(按引用传递行为).我没有检查过Serializable但我相信会是一样的.

对象以相同的方式传递,那么为什么Activity接收对象和Fragment接收对象的方式有所不同?

解决方法:

But why is it that when we pass objects to Fragments as Parcelable inside Bundle, for some reason they are sent as reference of object instead of copy/value of the object

不能保证.例如,如果您进行配置更改,或者您的过程终止了,但是用户迅速返回到您的任务,则将获得一份副本.

The object is passed the same way so why is there a difference in how the Activity receives the object and how the Fragment receives it ?

启动活动始终涉及IPC,因此始终涉及跨流程边界复制数据.

标签:parcelable,android-fragments,pass-by-reference,pass-by-value,android
来源: https://codeday.me/bug/20191027/1944736.html