【发布时间】:2020-09-26 02:45:10
【问题描述】:
我正在尝试创建一个增强的Intent 类(我称之为DataIntent),使其能够容纳对象类型的“有效负载”(而不是使用它为Uri 提供的内置功能) )。 DataIntent 扩展了 Android 的 Intent 类。
我的Activity 创建扩展对象没有任何问题,startActivityForResult() 的调用也没有任何问题。但是,在我响应Activity 时,当我调用getIntent() 方法并尝试将其转换为我的DataIntent 时,我将抛出ClassCastException。
我意识到这可能是一个非常愚蠢的问题 - 提前 1,000 个请求 - 但有谁知道为什么我不能将其转换为 DataIntent,因为这是用于启动新的 Activity 和 DataIntent是Intent 的孩子吗?
DataIntent dataIntent = (DataIntent)getIntent();
// invoked inside the responding Activity instance - throws a ClassCastException
【问题讨论】:
-
你为什么要这样做?你知道
http://developer.android.com/reference/android/content/Intent.html#putExtra(java.lang.String, android.os.Parcelable)吗? -
我宁愿远离 Parcelable 接口,因为它不必要地“沉重” - 与简单地分配对我的对象的引用(通过序列化过程进行的所有脱水/再水化)相比。
标签: android