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