搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
你好赵伟
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
HarmonyOS鸿蒙ArkTS,封装http网络请求_鸿蒙能封装手机网站链接吗
2
辅警考试答案怎么查找? #职场发展#学习方法
3
基于Python爬虫宁夏银川天气预报数据可视化系统设计与实现(Django框架) 研究背景与意义、国内外研究现状_基于python中国天气数据分析与可视化的研究目的和意义
4
excel文本写入 npoi_使用NPOI读写Excel、Word
5
开发板 C 型,cubeMX 与 keil 入门_keil cubemx
6
Xshell & Xftp & XManager & MobaXterm_xmanager xmoba
7
前端安全那些事
8
深入了解指针,指针数组,数组指针。_数组指针的语法形式
9
深入浅出Yolo系列之Yolox核心基础完整讲解_yolox 江大白
10
2023华为od机试真题B卷【跳房子2】Java 实现_华为od跳房子java语言编程
当前位置:
article
> 正文
Intent(意图)
作者:你好赵伟 | 2024-03-14 17:16:04
赞
踩
当一个意图对象中的 uri 被用来和一个过滤器中的 uri 比较时,比较的是()的各个组成部分。 uri activity data intent
Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、服务和广播接收器。 Intent可以划分成显式意图和隐式意图。 显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。 隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。 对于隐式意图,Android是怎样寻找到这个最合适的组件呢?记的前面我们在定义活动时,指定了一个intent-filter,Intent Filter(意图过滤器)其实就是用来匹配隐式Intent的,当一个意图对象被一个意图过滤器进行匹配测试时,只有三个方面会被参考到:动作、数据(URI以及数据类型)和类别。 动作测试(Action test) 一个意图对象只能指定一个动作名称,而一个过滤器可能列举多个动作名称。如果意图对象或过滤器没有指定任何动作,结果将如下: • 如果过滤器没有指定任何动作,那么将阻塞所有的意图,因此所有的意图都会测试失败。没有意图能够通过这个过滤器。 • 另一方面,只要过滤器包含至少一个动作,一个没有指定动作的意图对象自动通过这个测试 类别测试(Category test) 对于一个能够通过类别匹配测试的意图,意图对象中的类别必须匹配过滤器中的类别。这个过滤器可以列举另外的类别,但它不能遗漏在这个意图中的任何类别。 原则上一个没有类别的意图对象应该总能够通过匹配测试,而不管过滤器里有什么。大部分情况下这个是对的。但有一个例外,Android把所有传给startActivity()的隐式意图当作他们包含至少一个类别:"android.intent.category.DEFAULT" (CATEGORY_DEFAULT常量)。 因此,想要接收隐式意图的活动必须在它们的意图过滤器中包含"android.intent.category.DEFAULT"。(带"android.intent.action.MAIN"和"android.intent.category.LAUNCHER"设置的过滤器是例外) 数据测试(Data test) 当一个意图对象中的URI被用来和一个过滤器中的URI比较时,比较的是URI的各个组成部分。例如,如果过滤器仅指定了一个scheme,所有该scheme的URIs都能够和这个过滤器相匹配;如果过滤器指定了一个scheme、主机名但没有路经部分,所有具有相同scheme和主机名的URIs都可以和这个过滤器相匹配,而不管它们的路经;如果过滤器指定了一个scheme、主机名和路经,只有具有相同scheme、主机名和路经的URIs才可以和这个过滤器相匹配。当然,一个过滤器中的路径规格可以包含通配符,这样只需要部分匹配即可。 数据测试同时比较意图对象和过滤器中指定的URI和数据类型。规则如下: a. 一个既不包含URI也不包含数据类型的意图对象仅在过滤器也同样没有指定任何URIs和数据类型的情况下才能通过测试。 b. 一个包含URI但没有数据类型的意图对象仅在它的URI和一个同样没有指定数据类型的过滤器里的URI匹配时才能通过测试。这通常发生在类似于mailto:和tel:这样的URIs上:它们并不引用实际数据。 c. 一个包含数据类型但不包含URI的意图对象仅在这个过滤器列举了同样的数据类型而且也没有指定一个URI的情况下才能通过测试。 d. 一个同时包含URI和数据类型(或者可从URI推断出数据类型)的意图对象可以通过测试,如果它的类型和过滤器中列举的类型相匹配的话。如果它的URI和这个过滤器中的一个URI相匹配或者它有一个内容content:或者文件file: URI而且这个过滤器没有指定一个URI,那么它也能通过测试。换句话说,一个组件被假定为支持content:和file: 数据如果它的过滤器仅列举了一个数据类型。
转载于:https://www.cnblogs.com/jqyp/archive/2010/09/13/1825334.html
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/你好赵伟/article/detail/236087
推荐阅读
article
【HarmonyOS】服务卡片
API6
JSUI
跳转
不同页面_ark
setpageparams
(...
但是如果我们的应用使用的
API6
JSUI
进行开发的,使用这个router进行
跳转
后希望
跳转
的是对应的Js Page该如...
赞
踩
article
java
.
lang
.
RuntimeException
: Error
receiving
broadc...
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.nok...
赞
踩
article
Android
:
Broadcast
_
broadcast
of
intent
...
Broadcast
是Application之间交换数据最简单的一种方法。
Broadcast
组成部分
Broadcast
功...
赞
踩
article
android
接收广播意图错误:
java
.
lang
.
RuntimeException
: Error...
今天在调试毕设项目的时候,点击“搜索蓝牙”按钮,竟然无故运行停止,看了logcat信息为: 11-10 11:04:27...
赞
踩
article
Android 监听SIM卡插拔的方式
_
android
.
intent
.
action
.
sim
_
stat...
【代码】Android 监听SIM卡插拔的方式。
_
android
.
intent
.
action
.
sim
_
state
_
cha...
赞
踩
article
打包加固的那些坑_
subject
:
broadcast
of
intent
{
act
=androi...
好久没更新了,今天说说打包加固之后的apk有哪些坑, 在AS上直接运行的时候跑的很流畅,速度也很快,可以说已经过了测试的...
赞
踩
article
双
SIM卡
,Android监听
SIM卡
状态
_
android
.
intent
.
action
.sim
_
st...
最近在搞一个项目,其中有一块关于双
SIM卡
状态监听,在这一块上没有经验,在网上找了很多例子,但都是只是监听
SIM卡
改变状...
赞
踩
article
intent
传递数据
时的大小限制_
failure
sending
broadcast
intent
...
1. Intent 传递不同大小数据时的问题Activity间通过Intent
传递数据
的大小限制 – 具体数据博客传 5...
赞
踩
article
android
.
intent
.
act
i
on
.screen_
on
,Broadcast of Inten...
I have gotten the following error in my app:ANR( Broadcast o...
赞
踩
article
android
intent
{ (has
extras
) },ANR
Broadcast
of I...
I have got some ANRs in my
android
vitals:
Broadcast
of Inten...
赞
踩
article
android
P版本 系统稳定性
问题
案例分析(二)_
broadcast
of
intent
{ a...
前言:对这个专题总结就到此为止了。
android
是一个内容庞大的操作系统,若没有足够的时间去研究学习那就只知皮毛了,遇到...
赞
踩
article
系统广播
android
.
intent
.
action
.
KILL
_
BACKGROUND
_SERVICE...
Broadcast: Intent { act=
android
.
intent
.
action
.
KILL
_BACKGROUN...
赞
踩
article
探索
Android
四大组件之广播_
android
.
intent
.
action
.
time
_
tick
...
目录一、广播的机制二、探索广播1.动态注册2.静态注册和发送标准广播3.发送有序广播三、提出问题第一个问题第二个问题第三...
赞
踩
article
测试报出的
launcher3
anr问题分析_broadcast of
intent
{
act
=a...
1 . 从events log里面搜anr 01-05 10:24:10.066 555 572 I am_anr : ...
赞
踩
article
Android
ANR
问题
解析(一)_
reason
:
broadcast
of
intent
...
本篇先对
ANR
做一个简单认识和理解,关于如何分析
ANR
问题
下一篇再讲。
ANR
简介:
ANR
,是“Application N...
赞
踩
article
Android
DropBoxManager
服务分析_
subject
: broadcast of i...
一、启动流程
DropBoxManager
Service(简称DBMS) 记录着系统关键log信息,主要功能用于Debu...
赞
踩
article
系统广播
android
.
intent
.
action
.
KILL
_
BACKGROUND
_
SERVICE
...
Broadcast: Intent { act=
android
.
intent
.
action
.
KILL
_BACKGROUN...
赞
踩
article
android
BroadcastReceiver
ACTION
_
TIME
_
TICK
每分钟系统时...
在众多的Intent的
action
动作中,Intent.
ACTION
_
TIME
_
TICK
是比较特殊的一个,根据SDK描述...
赞
踩
article
Android
Intent
Action汇总_
android
intent
.
action
_
time
...
一、ACTION列表常用ACTION如下:String"
android
.
intent
.
action
.ADD_SHORTC...
赞
踩
article
android intent.
action
time
tick,
Intent
.
ACTION
_
TIME
...
开发守护进程或者天气预报一些定期检查服务是否存在操作时我们需要用到
ACTION
_
TIME
_TICK。看看文档里面是怎么说...
赞
踩
相关标签
harmonyos
广播接收intent错误
android
开发语言
王睿丶
android.intent.action.screen_on
android intent { (has extras) }
移动开发
java
ANR
应用程序无响应
死机
DBMS-日志
调试
service
Android
Intent
action
android intent.action time tick