IntentFilter

Android进阶(二十九) 走近 IntentFilter 如果过滤器仅指定了一个scheme,所有该scheme的URIs都能够和这个过滤器相匹配;如果过滤器指定了一个scheme、主机名但没有路经部分,所有具有相同scheme和主机名的URIs都可以和这个过滤器相匹配,而不管它们的路经;如果过滤器指定了一个scheme、主机名和路经,只有具有相同scheme、主机名和路经的URIs才可以和这个过滤器相匹配。当然,一个过滤器中的路径规格可以包含通配符,这样只需要部分匹配即可。file: URI例如。 阅读详情

 当Intent在组件间传递时,组件如果想告知Android系统自己能够响应和处理哪些Intent,那么就需要用到IntentFilter对象。

    顾名思义,IntentFilter对象负责过滤掉组件无法响应和处理的Intent,只将自己关心的Intent接收进来进行处理。 IntentFilter实行“白名单”管理,即只列出组件乐意接受的Intent,但IntentFilter只会过滤隐式Intent,显式的Intent会直接传送到目标组件。 Android组件可以有一个或多个IntentFilter,每个IntentFilter之间相互独立,只需要其中一个验证通过则可。除了用于过滤广播的IntentFilter可以在代码中创建外,其他的IntentFilter必须在AndroidManifest.xml文件中进行声明。

    IntentFilter中具有和Intent对应的用于过滤Action,Data和Category的字段,一个隐式Intent要想被一个组件处理,必须通过这三个环节的检查。

       

       一:检查 Action 尽管一个Intent只可以设置一个Action,但一个Intentfilter可以持有一个或多个Action用于过滤,到达的Intent只需要匹配其中一个Action即可。 深入思考:如果一个Intentfilter没有设置Action的值,那么,任何一个Intent都不会被通过;反之,如果一个Intent对象没有设置Action值,那么它能通过所有的Intentfilter的Action检查。

        

       二:检查 Data 同Action一样,Intentfilter中的Data部分也可以是一个或者多个,而且可以没有。每个Data包含的内容为URL和数据类型,进行Data检查时主要也是对这两点进行比较,比较规则: 如果一个Intent对象没有设置Data,只有Intentfilter也没有设置Data时才可通过检查。 如果一个Intent对象包含URI,但不包含数据类型:仅当Intentfilter也不指定数据类型,同时它们的URI匹配,才能通过检测。 如果一个Intent对象包含数据类型,但不包含URI:仅当Intentfilter也没指定URL,而只包含数据类型且与Intent相同,才通过检测。 如果一个Intent对象既包含URI,也包含数据类型(或数据类型能够从URI推断出),只有当其数据类型匹配Intentfilter中的数据类型,并且通过了URL检查时,该Intent对象才能通过检查。

   其中URL由四部分组成:它有四个属性scheme、host、port、path对应于URI的每个部分。

       例如:content://com.wjr.example1:121/files

       scheme部分:content

       host部分:com.wjr.example1

       port部分:121

       path部分:files

    host和port部分一起构成URI的凭据(authority),如果host没有指定,那port也会被忽略。

    这四个属性是可选的,但他们之间并不是完全独立的。要让authority有意义,scheme必须要指定。要让path有意思,scheme和authority必须指定。 Intentfilter中的path可以使用通配符来匹配path字段,Intent和Intentfilter都可以用通配符来指定MIME类型。

    

     三:检查 Category Intentfilter中可以设置多个Category,Intent中也可以含有多个Category,只有Intent中的所有Category都能匹配到Intentfilter中的Category,Intent才能通过检查。也就是说,如果Intent中的Category集合是Intentfilter中Category的集合的子集时,Intent才能通过检查。如果Intent中没有设置Category,则它能通过所有Intentfilter的Category检查。 如果一个Intent能够通过不止一个组件的Intentfilter,用户可能会被问那个组件被激活。如果没有目标找到,会产生一个异常。

 

 

 

IntentFilter

应用程序的组件为了告诉Android自己能响应、处理哪些隐式Intent请求,可以声明一个甚至多个IntentFilter。每个 IntentFilter描述该组件所能响应Intent请求的能力——组件希望接收什么类型的请求行为,什么类型的请求数据。比如之前请求网页浏览器这 个例子中,网页浏览器程序的IntentFilter就应该声明它所希望接收的Intent Action是WEB_SEARCH_ACTION,以及与之相关的请求数据是网页地址URI格式。

如何为组件声明自己的IntentFilter? 常见的方法是在AndroidManifest.xml文件中用属性<Intent-Filter>描述组件的IntentFilter。

前面我们提到,隐式Intent和IntentFilter进行比较时的三要素是Intent的Action、Data以及Category。实际 上,一个隐式Intent请求要能够传递给目标组件,必要通过这三个方面的检查。如果任何一方面不匹配,Android都不会将该隐式Intent传递给 目标组件。接下来我们讲解这三方面检查的具体规则。

1.动作测试

<intent-filter>元素中可以包括子元素<action>,比如:

  1. <intent-filter> 
  2. <action android:name="com.example.project.SHOW_CURRENT" /> 
  3. <action android:name="com.example.project.SHOW_RECENT" /> 
  4. <action android:name="com.example.project.SHOW_PENDING" /> 
  5. </intent-filter> 

一条<intent-filter>元素至少应该包含一个<action>,否则任何Intent请求都不能和该<intent-filter>匹配。

如果Intent请求的Action和<intent-filter>中个某一条<action>匹配,那么该Intent就通
过了这条<intent-filter>的动作测试。

如果Intent请求或<intent-filter>中没有说明具体的Action类型,那么会出现下面两种情况。

(1) 如果<intent-filter>中没有包含任何Action类型,那么无论什么Intent请求都无法和这条<intent-filter>匹配。

(2) 反之,如果Intent请求中没有设定Action类型,那么只要<intent-filter>中包含有Action类型,这个Intent请求就将顺利地通过<intent-filter>的行为测试。

2.类别测试

<intent-filter>元素可以包含<category>子元素,比如:

  1. <intent-filter . . . > 
  2. <category android:name="android.Intent.Category.DEFAULT" /> 
  3. <category android:name="android.Intent.Category.BROWSABLE" /> 
  4. </intent-filter> 

只有当Intent请求中所有的Category与组件中某一个IntentFilter 的<category>完全匹配时,才会让该Intent请求通过测试,IntentFilter中多余的<category> 声明并不会导致匹配失败。一个没有指定任何类别测试的IntentFilter仅仅只会匹配没有设置类别的Intent请求。

3.数据测试

数据在<intent-filter>中的描述如下:

  1. <intent-filter . . . > 
  2. <data android:type="video/mpeg" android:scheme="http" . . . /> 
  3. <data android:type="audio/mpeg" android:scheme="http" . . . /> 
  4. </intent-filter> 

<data>元素指定了希望接受的Intent请求的数据URI和数据类 型,URI被分成三部分来进行匹配:scheme、authority和path。其中,用setData()设定的Intent请求的URI数据类型和 scheme必须与IntentFilter中所指定的一致。若IntentFilter中还指定了authority或path,它们也需要相匹配才会 通过测试。

讲解完Intent基本概念之后,接下来我们就使用Intent激活Android自带的电话拨号程序。通过这个实例你会发现,使用Intent并不像其概念描述得那样难。

 

IntentFilter 
简述:结构化描述intent匹配的信息。包含:action,categories and data(via type,scheme ,path),还有priority, to order multiple matching filters.
       IntentFilter 中如果action为空,则视为通配符,如果type为空,则intent必须不设type,否则匹配不上。 
       data被分为3个属性:type,scheme,authority/path 任何设置的属性intent必须匹配上。 
                           设置了scheme 而没设type,则intent也必须类似,不能设置type,也不能是content: URI.
                           设置了type而没设scheme:将匹配上没有URI的intent,或者content:,file:的uri。
                           设置了authority:必须指定一个或多个相关联的schemes 
                           设置了path:唏嘘指定一个或多个相关联的schemes 
       匹配规则: 
           IntentFilter 匹配Intent的上的条件: 
           Action : 值相同 ,或则IntentFilter未指定action. 
           DataType:. 系统通过调用Intent.resolve(ContentResolver)获取type,通配符* 
                     在Intent/IntentFilter的MIME type中使用,区分大小写 
           DataScheme:系统通过调用Intent. getData() and Uri.getScheme())获取scheme, 区分大小写
           DataAuthority:必须有一个dataScheme匹配上且authority值匹配上,或者IntentFilter没有定义。Intent. getData() and Uri.getAuthority()获取authority.
           DataPath: scheme and authority必须先匹配上 ntent. getData() and Uri.getPath(),获取. 或者IntentFilter没有定义
           Categories:all of the categories in the Intent match categories given in the filter 多余的Categorie,不影响intent匹配,如果IntentFilter
                  没有指定Categorie,则只能匹配上没有Categorie的intent。 

常用intent列表: 
Android Intent 用法汇总 
显示网页 
- <activity android:name="BrowserActivity" android:label="Browser" android:launchMode="singleTask" android:alwaysRetainTaskState="true" android:configChanges="orientation|keyboardHidden" android:theme="@style/BrowserTheme">
- <!-- 
For these schemes were not particular MIME type has been 
                 supplied, we are a good candidate. 
  --> 
- <intent-filter> 
  <action android:name="android.intent.action.VIEW" /> 
  <category android:name="android.intent.category.DEFAULT" /> 
  <category android:name="android.intent.category.BROWSABLE" /> 
  <data android:scheme="http" /> 
  <data android:scheme="https" /> 
  <data android:scheme="about" /> 
  </intent-filter> 
- <!-- 
  For these schemes where any of these particular MIME types 
                  have been supplied, we are a good candidate. 
  --> 
- <intent-filter> 
  <action android:name="android.intent.action.VIEW" /> 
  <category android:name="android.intent.category.BROWSABLE" /> 
  <category android:name="android.intent.category.DEFAULT" /> 
  <data android:scheme="http" /> 
  <data android:scheme="https" /> 
  <data android:mimeType="text/html" /> 
  <data android:mimeType="text/plain" /> 
  <data android:mimeType="application/xhtml+xml" /> 
  <data android:mimeType="application/vnd.wap.xhtml+xml" /> 
  </intent-filter> 
- <!-- 
We are also the main entry point of the browser. 
  --> 
- <intent-filter> 
  <action android:name="android.intent.action.MAIN" /> 
  <category android:name="android.intent.category.DEFAULT" /> 
  <category android:name="android.intent.category.LAUNCHER" /> 
  <category android:name="android.intent.category.BROWSABLE" /> 
  </intent-filter> 
- <intent-filter> 
  <action android:name="android.intent.action.WEB_SEARCH" /> 
  <category android:name="android.intent.category.DEFAULT" /> 
  <category android:name="android.intent.category.BROWSABLE" /> 
  <data android:scheme="" /> 
  <data android:scheme="http" /> 
  <data android:scheme="https" /> 
  </intent-filter> 
- <intent-filter> 
  <action android:name="android.intent.action.WEB_SEARCH" /> 
  <action android:name="android.intent.action.MEDIA_SEARCH" /> 
  <category android:name="android.intent.category.DEFAULT" /> 
  </intent-filter> 
- <intent-filter> 
  <action android:name="android.intent.action.SEARCH" /> 
  <category android:name="android.intent.category.DEFAULT" /> 
  </intent-filter> 
  <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
- <intent-filter> 
  <action android:name="android.net.http.NETWORK_STATE" /> 
  <action android:name="android.intent.action.PROXY_CHANGE" /> 
  </intent-filter> 
  </activity> 

1. Uri uri = Uri.parse("http://google.com");   
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);   
   3. startActivity(it);  

显示地图 

   1. Uri uri = Uri.parse("geo:38.899533,-77.036476");   
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);    
   3. startActivity(it);    
   4. //其他 geo URI 範例   
   5. //geo:latitude,longitude   
   6. //geo:latitude,longitude?z=zoom   
   7. //geo:0,0?q=my+street+address   
   8. //geo:0,0?q=business+near+city   
   9. //google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom  



路径规划 

   1. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");  
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);   
   3. startActivity(it);   
   4. //where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456  


打电话 
   1. //叫出拨号程序  
   2. Uri uri = Uri.parse("tel:0800000123");   
   3. Intent it = new Intent(Intent.ACTION_DIAL, uri);   
   4. startActivity(it);   

   1. //直接打电话出去   
   2. Uri uri = Uri.parse("tel:0800000123");   
   3. Intent it = new Intent(Intent.ACTION_CALL, uri);   
   4. startActivity(it);   
   5. //用這個,要在 AndroidManifest.xml 中,加上   
   6. //<uses-permission id="android.permission.CALL_PHONE" />   

传送SMS/MMS 
   1. //调用短信程序  
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);   
   3. it.putExtra("sms_body", "The SMS text");    
   4. it.setType("vnd.android-dir/mms-sms");   
   5. startActivity(it);  

   1. //传送消息  
   2. Uri uri = Uri.parse("smsto://0800000123");   
   3. Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
   4. it.putExtra("sms_body", "The SMS text");   
   5. startActivity(it);  

   1. //传送 MMS   
   2. Uri uri = Uri.parse("content://media/external/images/media/23");   
   3. Intent it = new Intent(Intent.ACTION_SEND);    
   4. it.putExtra("sms_body", "some text");    
   5. it.putExtra(Intent.EXTRA_STREAM, uri);   
   6. it.setType("image/png");    
   7. startActivity(it);   

传送 Email 
   1. Uri uri = Uri.parse("mailto:xxx@abc.com");   
   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
   3. startActivity(it);   

   1. Intent it = new Intent(Intent.ACTION_SEND);   
   2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");   
   3. it.putExtra(Intent.EXTRA_TEXT, "The email body text");   
   4. it.setType("text/plain");   
   5. startActivity(Intent.createChooser(it, "Choose Email Client"));   

   1. Intent it=new Intent(Intent.ACTION_SEND);     
   2. String[] tos={"me@abc.com"};     
   3. String[] ccs={"you@abc.com"};     
   4. it.putExtra(Intent.EXTRA_EMAIL, tos);     
   5. it.putExtra(Intent.EXTRA_CC, ccs);     
   6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");     
   7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");     
   8. it.setType("message/rfc822");     
   9. startActivity(Intent.createChooser(it, "Choose Email Client"));  

   1. //传送附件 
   2. Intent it = new Intent(Intent.ACTION_SEND);   
   3. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   
   4. it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");   
   5. sendIntent.setType("audio/mp3");   
   6. startActivity(Intent.createChooser(it, "Choose Email Client"));  

播放多媒体 
       Uri uri = Uri.parse("file:///sdcard/song.mp3");   
       Intent it = new Intent(Intent.ACTION_VIEW, uri);   
       it.setType("audio/mp3");   
       startActivity(it);  



       Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");  
       Intent it = new Intent(Intent.ACTION_VIEW, uri);   

       startActivity(it);  



Market 相关 
1.        //寻找某个应用  
2.        Uri uri = Uri.parse("market://search?q=pname:pkg_name");  
3.        Intent it = new Intent(Intent.ACTION_VIEW, uri);   
4.        startActivity(it);   
5.        //where pkg_name is the full package path for an application  

1.        //显示某个应用的相关信息  
2.        Uri uri = Uri.parse("market://details?id=app_id");   
3.        Intent it = new Intent(Intent.ACTION_VIEW, uri);  
4.        startActivity(it);   
5.        //where app_id is the application ID, find the ID    
6.        //by clicking on your application on Market home    
7.        //page, and notice the ID from the address bar  


Uninstall 应用程序 
1.        Uri uri = Uri.fromParts("package", strPackageName, null);  
2.        Intent it = new Intent(Intent.ACTION_DELETE, uri);    
3.        startActivity(it);   

Android中的IntentFilter及其作用 当一个Intent被发送时,系统会根据Intent的属性与IntentFilter进行匹配,找到与之匹配的组件,并将Intent传递给该组件进行处理。声明组件能够接收的Intent类型:通过在组件的清单文件(Manifest)中声明IntentFilter,开发者可以指定该组件能够处理的Intent的类型。当我们运行应用程序并点击MainActivity中的按钮时,系统会根据我们发送的Intent的动作和数据类型,在清单文件中找到与之匹配的MainActivity,并将Intent传递给它进行处理。 阅读详情

相关推荐

面试必备:Android意图过滤器(Intent Filter)的底层实现原理

在Android开发中,组件(Activity/Service/BroadcastReceiver)之间的通信主要通过Intent完成。其中,「隐式Intent」(不明确指定组件类名的Intent)的核心机制就是「意图过滤器(Intent Filter)」——它决定了哪些组件可以响应你的请求。Intent与Intent Filter的关系系统如何完成意图匹配(底层匹配规则)PackageManagerService对Filter的存储机制面试中高频的「匹配失败排查」技巧。

移动开发前沿的博客 1073

简述 IntentFilter(意图过滤器)

转载自:http://www.cnblogs.com/ywtk/p/4158103.html 侵删 1.什么是IntentFilter ? IntentFilter翻译成中文就是“意图过滤器”,主要用来过滤隐式意图。当用户进行一项操作的时候,Android系统会根据配置的 “意图过滤器” 来寻找可以响应该操作的组件,服务。 例如:当用户点击PDF文件的时候,Android系统

Seachal的博客 2526

05、基于ALV表报实现复选框、全选、取消全选等功能

基于Function ALV实现复选框、全选及取消全选等功能

wo520yl1314的博客 2372

Intent以及IntentFilter详解

在Android中有四大组件,这些组件中有三个组件与Intent相关,可见Intent在Android整个生态中的地位高度。Intent是信息的载体,用它可以去请求组件做相应的操作,但是相对于这个功能,Intent本身的结构更值得我们去研究。

王三的专栏 4万+

手把手实战:RK3588上YOLOv8模型从训练到部署全流程解析

本文详细解析了在RK3588开发板上部署YOLOv8目标检测模型的全流程。从模型训练、正确导出适配的ONNX格式,到使用RKNN-Toolkit2进行模型转换与量化,最后在板卡上完成部署与性能测试。文章提供了完整的代码示例和关键避坑指南,帮助开发者高效实现嵌入式AI应用落地。

weixin_28224217的博客 407

GQA数据集介绍

GQA,这是一个用于真实世界视觉推理和组合问答的新数据集。2200万个不同的推理问题,所有这些问题都带有表示其语义的功能程序。答案分布受到严格控制。11.3万张图像、2200万个问题,推理能力有对象和属性识别、传递关系跟踪、空间推理、逻辑推理和比较。

qq_56551150的博客 2957

IntentFilter详解

IntentFilter的意思就是意图过滤器,当我们隐式的启动系统组件的时候,就会根据IntentFilter来筛选出合适的进行启动。 如果组件的 IntentFilter 与 Intent 中的 IntentFilter 正好匹配,系统就会启动该组件,并把 Intent 传递给它。如果有多个组件同时匹配到了,系统则会弹出一个选择框,让用户选择使用哪个应用去处理这个 Intent,比如有时候点击一个网页链接,会弹出多个应用,让用户选择用哪个浏览器去打开该链接,就是这种情况。 我们都知道,Intent

梦否 8214

从MATLAB代码入手:手把手教你复现OTFS调制解调核心模块(附完整函数解析)

本文详细解析了OTFS调制解调技术在MATLAB中的实现方法,包括核心模块如ISFFT变换、海森堡变换及MP检测算法的代码实现。通过完整的函数解析和性能验证框架,帮助通信工程师快速掌握这一前沿技术,提升在高速移动场景下的通信系统设计能力。

weixin_42568801的博客 319

IntentFilter功能简介

1.什么是IntentFilter ? IntentFilter翻译成中文就是“意图过滤器”,主要用来过滤隐式意图。当用户进行一项操作的时候,Android系统会根据配置的 “意图过滤器” 来寻找可以响应该操作的组件,服务。 例如:当用户点击PDF文件的时候,Android系统就会通过设定好的意图过滤器,进行匹配测试。找到能够打开PDF文件的APP程序。 代码: <activity...

JiandaoStudio 9763

Gemma 4 12B QAT+MTP小显存部署实战指南

大语言模型本地部署的核心瓶颈在于显存与推理效率的平衡。量化感知训练(QAT)通过在训练阶段模拟低精度计算,显著提升模型对INT4量化的鲁棒性;多令牌预测(MTP)则通过并行解码优化KV Cache复用,降低GPU kernel调用频次。二者协同可在8GB显存设备上稳定运行12B级模型,兼顾精度、速度与上下文长度。该方案适用于开发者本地AI助手、技术文档生成、SQL翻译等轻量但高交互需求场景,是当前Windows环境中小显存高效落地Gemma系列模型的工程最优解。

weixin_30934229的博客 378

YOLOv11改进 - C3k2融合 | C3k2 融合 ARConv 自适应矩形卷积:动态调整卷积核形状与采样点

本文介绍了将自适应矩形卷积(ARConv)模块与YOLOv11相结合的方法。ARConv是针对遥感图像全色锐化任务设计的创新卷积模块,可自适应调整卷积核形状与采样点数量,解决传统卷积刚性限制,实现高效特征提取。其工作流程包括学习卷积核高度和宽度、选择采样点数量、生成采样图、卷积实现与空间自适应增强。我们将集成ARConv的C3k2_ARConv模块引入YOLOv11,对相关代码进行修改和注册,并配置了yolov11 - C3k2_ARConv.yaml文件。实验脚本显示,该结合方式应用于目标检测任务。

魔改工程师的博客 1009

intentfilter详解

很多人对文档中的Intent和IntentFilter不理解是什么意思,我这里举例解释下。 Intent字面意思就是目标,目的。通俗一点,需要达成某些目标,则需要提供一些动作,这些目标的分类,以及达成这些目标所需要的一些数据等等。 Android中的Intent通过Action,Category和data等属性进行了相应的描述,我们想做某些事情(达成某些目标) 就需要填写这些参数的部分或全部

祥子的专栏 5454

【WRF教程第3.5期】预处理系统 WPS 详解:以4.5版本为例

预处理系统 WPS 详解:以4.5版本为例

WW、forever的博客 1422

android IntentFilter详解

1.由一个问题引发的思考: 对于启动一个广播,静态注册一个广播,intent-filter中什么也不设置,在发送广播中对intent也不设置,是否可以匹配到? 写代码验证,直接编译不通过: Missing one of the key attributes ‘action#name,category#name’ on element intent-filter at AndroidManifest.xml:20:13-25:29 2.IntentFilter过滤规则的全面学习 (1)IntentFilter

u013750244的博客 2357

5G NR资源网格详解:RE、RB、符号、时隙与帧

本文以ETSI发布的3GPP TS 38.211 V18.3.0(Release 18)为协议基线,从二维资源网格出发,建立这些对象的严格关系;随后解释Numerology如何改变时间和频率粒度,并给出索引换算、带宽计算、内存布局和排障方法。

jifen0bianhuan的博客 182

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IntentFilter使用

IntentFilter使用 intentFilter作用 当发送一个隐式Intent后,Android系统会将他与程序中的每一个组件的过滤器进行匹配,匹配属性有action、data、category,需要这三个属性都匹配成功才能唤醒相应的组件。 action <intent-filter> <action android:name="android.inten...

qq_41696518的博客 1816

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android IntentFilter详解

1.由一个问题引发的思考:对于启动一个广播,静态注册一个广播,intent-filter中什么也不设置,在发送广播中对intent也不设置,是否可以匹配到?写代码验证,直接编译不通过: Missing one of the key attributes 'action#name,category#name' on element intent-filter at AndroidManifest.x...

ddd5678的博客 8235

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Intent和IntentFilter详解

Intent用于启动Activity,Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介。 使用Intent启动组件的优势 1, Intent为组件的启动提供了一致的编程模型。无论想要启动的组件是Activity,Service, 还是BroadcastReceiver,都可以使用Intent封装启动的意图。 2, 在某些时候, 应

zhaofangyuan的专栏 1万+

intentfilter匹配规则

activity的启动方式有两种:显示启动和隐式启动。显示启动很简单,也很常用。隐式启动则需要Intent能够匹配目标activity 在 IntentFilter配置的过滤信息。 Intent和IntentFilter中的过滤信息有Action、Category、Data action action是一个字符串,系统预设了一些action规则,也可以定义自己的action。 一个IntentF...

正义 453

android IntentFilter 使用之 data过滤

需求: 过滤指定action的intent 场景:一个广播接收器需要接收一个广播,起初只用actiion来标示,但是后期发现 我如果正在跟好友A聊天的情况下,我只想监听来自A以外的广播 解决办法:IntentFilter通过设置data相关属性来实现 先看一下官方文档  Data testLike the action and categories, the data s

天下无双 9374

【Android】Intent 和 IntentFilter

Intent 和 IntentFilter 用于组件之间的通信与交互。

weixin_44587780的博客 1296

【Android Activity】IntentFilter的匹配规则

三、intentFilter的匹配规则: 1、一个activity下可能有多个intentfilter,一个intent只要能匹配任何一组intentFilter下的信息便可成功启动activity。 2、一个intentFilter中action 、category、data都可以有多个。但是intent只需要匹配出一组即可。 8.1、启动activity的方式: 显示调用 明确指定被启动activity的组件信息,即包名类名。 隐式调用 需要指明被启动activity的intentFilter下

dev晴天的博客 2117
下一篇: Intent和IntentFilter详解
zhg_vincent
博客等级 码龄12年 93粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值