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

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

概述当我们使用Serializable和Parcelable在活动之间传递对象时,会将对象的副本/值发送到接收活动(典型的按值传递行为).但是为什么当我们将对象作为Bundle在Bundle中传递给Fragments时,由于某种原因,它们是作为对象的引用而不是对象的副本/值发送的(按引用传递行为).我没有检查过Seria

当我们使用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,因此始终涉及跨流程边界复制数据.

总结

以上是内存溢出为你收集整理的将对象从活动传递到片段是通过引用传递全部内容,希望文章能够帮你解决将对象从活动传递到片段是通过引用传递所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1090301.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存