java - 安卓 : Bundle Vs Intent

标签 java android

我可以通过 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>

Reference

但是,如果您想要在 Bundle 中传递一个复杂的对象,则必须将其设为SerializedParcelable。由于 Serialized 是 java native 实现,它不是为移动设备等可移植设备设计的。因此,如果您真正考虑性能,则必须使用 Parcelable 来代替。 Google 本身提倡使用 Parcelable

但就你而言LatLng实现了Parcelable。所以你可以使用

putParcelable(String key, Parcelable value)

要访问此功能,请使用以下方法。

public T getParcelable (String key);

关于java - 安卓 : Bundle Vs Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20844285/

相关文章:

java - 我如何使用来自 Kotlin 的不可空元素的 Java 集合?

android - 从付费应用到免费的Google Play应用内购买

android - 正则表达式 - 电话号码 - Android

java - 组间最后值的总和

java - 如何在java中使用sphinx和freetts管理hello.gram以进行对话

java - 计算半径中的二维坐标(对于基于图 block 的游戏)

java - SAAgent(三星配件)java.lang.NoSuchMethodException : <init> [] 的 Proguard 问题

android - 如何使用 KSOAP 故障消息

android - Android Studio-具有覆盖范围的运行应用程序

java - getGraphics() 什么时候返回有效的图形实例?