Java 使用包裹有什么好处?
我们引用不使用parcelable的类对象有什么不同吗 当我们对地块进行估价时,我们必须创建该类的对象。 阅读时也是如此Java 使用包裹有什么好处?,java,android,Java,Android,我们引用不使用parcelable的类对象有什么不同吗 当我们对地块进行估价时,我们必须创建该类的对象。 阅读时也是如此 如果我们在读写时实际引用了一个类对象,那么使用该类的Parcelable有什么区别呢?虽然定制类实现Parcelable需要一点努力,但回报是可以很容易地将它们作为额外的东西传递给包。Bundle是一个数据容器,用于Android世界中各种组件之间的通信,另请参见本指南 考虑这样一种情况,您希望将自定义类的实例从活动传递到片段。片段有一个参数包,通常用于初始化片段。(我想这是
如果我们在读写时实际引用了一个类对象,那么使用该类的Parcelable有什么区别呢?虽然定制类实现Parcelable需要一点努力,但回报是可以很容易地将它们作为额外的东西传递给
包。Bundle
是一个数据容器,用于Android世界中各种组件之间的通信,另请参见本指南
考虑这样一种情况,您希望将自定义类的实例从活动
传递到片段
。片段
有一个参数包
,通常用于初始化片段
。(我想这是因为如果用户离开应用程序,并且整个应用程序在一小时后停止并从后堆栈中恢复,那么捆绑包
仍然可以访问。另一方面,如果片段
没有在中的另一个捆绑包
中保存它们,则通过构造函数传递的任何值都将丢失。)aveInstanceState()
)
因此,如果一个值可以存储在包中,那就好了。属于实现Parcelable
的类的对象以及基本数据类型、一些数组、列表和可序列化对象都属于这种类型
如果可以在不进行类转换的情况下检索值,则更方便,这就是为什么我尽可能选择Parcelable
而不是Serializable
:
假设我们有两个类分别实现了Serializable
Parcelable
。
假设我们有一个Bundle b=getArguments()代码>
要检索可序列化的值,需要以下语句
SomeSerializableClass instanceOfSerializableClass = (SomeSerializableClass)b.getSerializable("keyForSerializableValue");
而对于Parcelable
值,您可以编写
SomeParcelableClass instanceOfParcelableClass = b.getParcelable("keyForParcelableValue");
在Kotlin中,我们有一种罕见的情况,语句比Java对应语句长:
val instanceOfSerializableClass: SomeSerializableClass? = b.getSerializable("keyForSerializableValue") as SomeSerializableClass
相比
val instanceOfParcelableClass = b.getParcelable<SomeParcelableClass>("keyForParcelableValue");
val instanceOfParcelableClass=b.getParcelable(“keyForParcelableValue”);
非常感谢……它很有用。