Intent有两种:implicit隐式 和 explicit显式
Explicit Intent
明确的指定了要启动的Acitivity
比如以下Java代码,明确指定了要启动B:
Intent intent= new Intent(this, B.class)
Implicit Intent
没有明确的指定要启动哪个Activity ,而是通过设置一些Intent Filter来让系统去筛选合适的Acitivity去启动。
当使用startActivity时,隐式Intent解析到一个单一的Activity。如果存在多个Activity都有能力在特定的数据上执行给定的动作的话,Android会从这些中选择最好的进行启动。
Implicit Intent 到底发给哪个activity?
这需要进行三个匹配,一个是action,一个是category,一个是data。根据三个的匹配结果,找到应该启动的Activity。
网友评论