我从Android API参考中复制了这个:
public Intent (Context packageContext, Class<?> cls)
对于这个构造函数,我很好奇cls
参数的要求是什么。我知道这通常可以是一个扩展Activity
或Service
的类,但我不确定该类的具体要求是什么,例如:该类必须扩展某个类,否则该类必须具有do()函数。
答案 0 :(得分:0)
这取决于您在构建它之后对Intent
执行的操作。
如果您在调用startActivity()
或startActivityForResult()
时使用该类,则该类必须从Activity
继承,并且必须在清单中的<activity>
标记中声明。< / p>
如果您在致电startService()
,stopService()
或bindService()
时使用该类,则该类必须从Service
继承并且必须在<service>
中声明清单中的标签。
如果您在调用sendBroadcast()
或其他类似调用时使用它,则该类必须从BroadcastReceiver
继承,并且必须在清单中的<receiver>
标记中声明。
但是,没有什么可以阻止您使用Intent
构建new Intent(context, class)
并将所需的任何类作为第二个参数传递。编译器不会检查这一点,运行时也不会在Intent
构造时检查。