我可以通过 Intent 将字符串(它是一个对象)传递给另一个 Activity 。但是每当我尝试通过 Intent 将一些其他类对象(例如:“LatLng”类对象)传递给另一个 Activity 时,就会看到运行时错误。在这种情况下,sting 对象和 LatLng 类对象有什么区别?
注意:我可以通过 bundle 传递 LatLng 类对象,没有任何问题,但我只是想知道原因。
最佳答案
您可以按原样传递 Intent 中的所有原始类型值,例如 String、int、boolean 等。对于 String 类型,默认情况下它实现 Serialized
。
public final class
String
extends Object
implements Serializable CharSequence Comparable<T>
但是,如果您想要在 Bundle 中传递一个复杂的对象,则必须将其设为Serialized
或Parcelable
。由于 Serialized
是 java native 实现,它不是为移动设备等可移植设备设计的。因此,如果您真正考虑性能,则必须使用 Parcelable
来代替。 Google 本身提倡使用 Parcelable
。
但就你而言LatLng实现了Parcelable。所以你可以使用
putParcelable(String key, Parcelable value)
要访问此功能,请使用以下方法。
关于java - 安卓 : Bundle Vs Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20844285/