Intent类构造函数中对class参数的要求是什么?

时间:2013-08-30 05:42:13

标签: java android android-intent

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

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

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

1 个答案:

答案 0 :(得分:0)

这取决于您在构建它之后对Intent执行的操作。

如果您在调用startActivity()startActivityForResult()时使用该类,则该类必须从Activity继承,并且必须在清单中的<activity>标记中声明。< / p>

如果您在致电startService()stopService()bindService()时使用该类,则该类必须从Service继承并且必须在<service>中声明清单中的标签。

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

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