0

我从 Android API 参考中复制了这个:

public Intent (Context packageContext, Class<?> cls)

对于这个构造函数,我很好奇cls参数的要求是什么。我知道这通常可以是类扩展Activityor Service,但我不确定该类的具体要求是什么,例如该类必须扩展某个类,或者该类必须具有 do() 函数。

4

1 回答 1

0

这取决于你Intent在构建它之后如何处理它。

如果您在调用中使用它,startActivity()或者startActivityForResult()该类必须继承自Activity并且必须在清单中的<activity>标记中声明。

如果您在对 的调用中使用它startService()stopService()或者bindService()该类必须继承自Service并且必须在清单中的<service>标记中声明。

如果您在调用sendBroadcast()或其他类似调用中使用它,则该类必须继承自BroadcastReceiver,并且必须在清单中的<receiver>标记中声明。

但是,没有什么可以阻止您构造一个Intentusingnew Intent(context, class)并将您想要的任何类作为第二个参数传递。编译器不会检查这一点,运行时也不会在Intent构造时检查。

于 2013-08-30T08:38:11.807 回答