将对象从活动传递到片段是通过引用传递
作者:互联网
当我们使用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