概述
一、基本概念
隐式Intent:不指定组件,而是通过要进行的操作来选择处理它的组件;
操作(Action):指定要执行的通用操作,操作在很大程度上决定了其余 Intent的构成,特别是数据和 extra 中包含的内容;
数据(Data):待操作数据和/或该数据的MIME类型的URI。可以指定某一个或者都指定;
类别 (category):一个包含应处理 Intent 组件类型的附加信息的字符串;
Extra:存放键值对,用于启动后组件可以使用;
标志(flag):指定Android系统如何启动Activity。
tip:尽量不用intent启动service,而是直接启动,因为你看不见哪个service启动了,所以有的功能可能就无法实现。
二、PendingIntent
用例包括:
1.Notification执行操作所要执行的Intent;
2.应用小部件执行操作要执行的Intent;
3.AlarmManager在未来某段时间要执行的Intent。
声明组件类型:
1.PendingIntent.getActivity(),用于启动Activity的intent;
2.PendingIntent.getService(),用于启动Service的intent;
3.PendingIntent.getBroadcast(),用于启动BroadcastReceiver的intent;
三、Intent匹配规则
action:
a.Intent中指定的Action必须与过滤器中的某一个匹配;
b.如果过滤器中没有指定任何的Action,则Intent默认没有匹配项,所有的隐式Intent均无法启动该组件;
c.如果Intent未指定任何Action,则可以匹配过滤器(过滤器至少包含一个Action)。
category:
data:
URI匹配规则:
data匹配规则:
四、代码中的匹配查找:
PackageManager中提供了一系列的query方法来查找待定的Intent,以及resolve方法来确定响应Intent的最佳组件。
queryIntentActivities()查找匹配的activity列表;
queryIntentServices()查找匹配的Service列表;
queryBroadcastReceivers()查找匹配的广播接收器。
最后
以上就是娇气往事为你收集整理的隐式Intent匹配规则一、基本概念二、PendingIntent三、Intent匹配规则四、代码中的匹配查找:的全部内容,希望文章能够帮你解决隐式Intent匹配规则一、基本概念二、PendingIntent三、Intent匹配规则四、代码中的匹配查找:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复