[Android开发基础4] 意图与意图过滤器

news2024/11/27 10:36:18

文章目录

 意图(Intent)

简介

显式意图

隐式意图

意图过滤器(IntentFiler)

action

 data

category


 意图(Intent)

简介

        Intent被称为意图,是程序中各组件进行交互的一种重要方式,他不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。一般用于启动Activity、Service以及发送广播等。根据开启目标组件的方式不同,Intent被分为两种类型显式意图和隐式意图

显式意图

不带其它参数,只包含两个参数,当前页面与目标页面,不设置action,意图明显。

 示例代码:

//注册按钮的事件响应
        bt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent();
                intent.setClass(loginActivity.this,RegisterActivity.class);
                startActivity(intent);
                Toast.makeText(loginActivity.this, "跳转注册页面成功", Toast.LENGTH_LONG).show();
            }
        });

隐式意图

 通过设置actioin在清单文件中扫描匹配对应的action,匹配成功则跳转执行,意图不明显。


意图过滤器(IntentFilter)

        当发送一个隐式意图后,Android系统会将他与程序中的每一个组件的过滤器进行匹配,匹配属性有 action、data、category,需要这三个属性都匹配成功才能唤起相应的组件,启动对应的activity。

action

用于指定Intent对象的动作

<intent-filter>
    <action android:name="android.intent.action.EDIT"/>
    <action android:name="android.intent.action.VIEW"/>
    ......
</intent-filter>

注意:

  • 只要Intent携带的action与其中一个<intent-filter>标签中action的声明相同,则属性匹配成功。

  • 在清单文件中为Activity添加<intent-filter>标签时,必须添加action属性,否则隐式Intent无法开启该Activity。

 data

指定数据的URI或者数据MIME类型他的值通常与Intent的action属性有关联。

<intent-filter>
<data android:mimeType="video/mpeg" android:scheme="http..."/>
    <data android:mimeType="audio/mpeg" android:scheme="http..."/>
    ...
</intent-filter>

注意:

  • 隐式Intent携带的data数据只要与IntentFilter中的任意一个data声明相同,data属性就匹配成功

category

用于为action添加额外信息。

<intent-filter>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    .......
</intent-filter>

 注意:

  • 一个IntentFilter可以不声明category属性,也可以声明多个category属性。

  • 隐式Intent中声明的category必须全部能够与某一个IntentFilter中的category匹配才算匹配成功

  • IntentFilter中罗列的category属性数量必须大于或者等于隐式Intent携带的category属性数量时,category属性才能匹配成功。如果一个隐式Intent没有设置category属性,那么他可以通过任何一个IntentFilter(过滤器)的category匹配。

 

END.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四章.误差反向传播法—简单层的实现(加法层(AddLayer)+乘法层(MulLayer))

第四章.误差反向传播法 4.1 简单层的实现 本章主要讲述的是加法层(AddLayer)和乘法层(MulLayer)的实现过程。 1.加法层(AddLayer) 从正向传播和反向传播两个层面进行分析。 1).示例&#xff1a; 以zxy为对象&#xff0c;观察它的传播。zxy的导数&#xff1a;∂z/∂x1,∂z/∂…

从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类

我国高分辨率对地观测系统重大专项已全面启动&#xff0c;高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成&#xff0c;将成为保障国家安全的基础性和战略性资源。随着小卫星星座的普及&#xff0c;对地观测已具备多次以上的全球覆盖…

DVWA靶场通关和源码分析

文章目录一、Brute Force1.low2、medium3、High4、Impossible二、Command Injection1、Low2、Medium3、High三、CSRF1、Low2、Medium3、High4、Impossible四、File Inclusion1、Low2、Medium3、High五、File Upload1、Low2、Medium3、High4、Impossible六、 SQL注入1、Low2、Me…

关于catkin的一些笔记以及资料连接

大佬们早就不用catkin_make编译节点了&#xff0c;快来瞅瞅他们使用的啥 https://zhuanlan.zhihu.com/p/399753815 https://catkin-tools.readthedocs.io/en/latest/index.html# ROS 编译系统 catkin 详解 https://www.jianshu.com/p/7fccfe18d7d3 ROS学习笔记&#xff08;六…

【20230206-0209】哈希表小结

哈希表一般哈希表都是用来快速判断一个元素是否出现在集合里。哈希函数哈希碰撞--解决方法&#xff1a;拉链法和线性探测法。拉链法&#xff1a;冲突的元素都被存储在链表中线性探测法&#xff1a;一定要保证tableSize大于dataSize&#xff0c;利用哈希表中的空位解决碰撞问题。…

linux性能优化-内存buffer/cache区分

# 注意不同版本的free输出可能会有所不同 $ freetotal used free shared buff/cache available Mem: 8169348 263524 6875352 668 1030472 7611064 Swap: 0 0 0本文目的用来区分free中…

linux——守护进程守护刷抖音程序不被意外退出

先搞清楚几个概念&#xff1a;udev:设备管理工具&#xff0c;以守护进程的方式工作。位于应用层&#xff0c;主要用于监听内核硬件状态&#xff0c;它能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备文件的创建&#xff0c;删除等守护进程&#xff1a;守护…

vue 最详细教学篇(三)

文章目录vue2-cli 项目文件分析示例项目解析router-linkrouterrouter-viewmain.jspackage.jsonvue2-cli 项目 vue-cli>> 文件分析 从上图分析项目文件 1. node_modules // npm 所有下载文件包都在里面 2. public // 根目录文件, 存放index.html和一些脚本文件 3. sr…

CSDN每日一练:小桥流水人家

题目名称&#xff1a;小桥流水人家 时间限制&#xff1a;1000ms内存限制&#xff1a;256M 题目描述 在n*m的地图上&#xff0c;存在一个喷水点(x,y). 如果相邻的位置低于有水的地方&#xff0c;水就能流到相邻的某位置。 已知各个地方的海拔高度&#xff0c;求水的最大覆盖个格…

[js基础]ECMAScript2015(ES6)精要知识点(下)

模块化模块就是在单个文件中声明的JavaScript代码。我们可以用JS代码直接从其他文件中导入函数、变量和类。在NodeJS之前&#xff0c;由于没有过于复杂的开发场景&#xff0c;前端是不存在模块化的&#xff0c;后端才有模块化。NodeJS诞生之后&#xff0c;它使用CommonJS的模块…

filebrowser logo和样式自定义及免密访问

这两天接到项目一个需求&#xff0c;客户需要文件管理存储服务&#xff0c;看了下大概的功能&#xff0c;计划用源码开发的&#xff0c;但是看后期这块调整也不大&#xff0c;就采用开源的项目进行即可&#xff0c;开源项目对比后&#xff0c;发现filebrowser比较适合我&#x…

Spring如何解决循环依赖

今天面试了同程旅行&#xff0c;面试官问到了这个问题&#xff0c;所以今天来总结学习一下 Spring是如何解决循环依赖问题&#xff1f; 前言 Spring的依赖注入分为 setter注入和 构造器注入 这里说的解决循环依赖主要指的是&#xff1a;单例模式下的setter循环依赖 如果是&a…

ThreadLocal使用与原理

目录一、ThreadLocal1.ThreadLocal简介1.1 是什么2.能干嘛1.3 api介绍1.4 实战1.5 通过上面代码总结2.从阿里ThreadLocal规范开始3.ThreadLocal源码分析3.1 Thread&#xff0c;ThreadLocal&#xff0c;ThreadLocalMap 关系3.2 总结4.ThreadLocal内存泄露问题4.1 什么是内存泄漏…

PCIE 学习笔记(入门简介)

PCIE 学习笔记书到用时方恨少啊&#xff0c;一年前学PCIE的笔记&#xff0c;再拿出来瞅瞅。发到博客上&#xff0c;方便看。PCIE基础PCIE和PCI的不同PCIE采用差分信号传输&#xff0c;并且是dual-simplex传输——每条lane上有TX通道和RX通道&#xff0c;所以每条lane上的信号是…

DBeaver连接达梦数据库

1、下载Dbeaver安装包 1、官网下载&#xff1a;Download | DBeaver Community 2、下载完成后双击运行.exe文件&#xff0c;进行安装 2、配置达梦数据库驱动 1、达梦数据库驱动下载&#xff1a;Mybatis 框架 | 达梦技术文档 2、为DBeaver添加驱动 3、自定义DM驱动管理器的相关配…

购买低代码平台,要考量哪些指标?

近些年来&#xff0c;低代码平台的热度在逐渐上升&#xff0c;可以看出企业数字化转型得速度也在逐渐加快。企业的数字开发需求越来越强&#xff0c;市场之间的竞争也愈演愈烈。特别是对于中小型企业&#xff0c;既要考虑到产品功能需求&#xff0c;又要考虑成本压力&#xff0…

安卓小游戏:飞机大战

安卓小游戏&#xff1a;飞机大战 前言 前面写了十二篇自定义view的博客&#xff0c;说实话写的还是有点无聊了&#xff0c;最近调整了一下&#xff0c;觉得还是要对开发有热情&#xff0c;就写了点小游戏&#xff0c;现在抽时间把博客也写一写&#xff0c;希望读者喜欢。 需…

渲染速度特别慢,使用云渲染会快多少?

设计师在使用软件制作效果图和动画师在制作动画时&#xff0c;其中有一个比较关键的环节就是渲染成像&#xff0c;渲染的效率主要跟使用的电脑显卡或CPU性能有关&#xff0c;如果性能太低&#xff0c;渲染的速度会很慢&#xff0c;拉长了项目整体的交付周期&#xff0c;云渲染速…

反转链表的两种方法

大家好&#xff0c;今天和大家分享的是反转链表的两种方法&#xff0c;第一种是用泛型编程里面的STL&#xff0c;第二种是利用多个指针进行操作&#xff0c;小孩子才做选择&#xff0c;建议两个都学。我们往下看&#xff1a;一.使用vector容器ps&#xff1a;该方法对内存的需求…

LeetCode刷题--- 430. 扁平化多级双向链表(双指针)

文章目录一、编程题&#xff1a;430. 扁平化多级双向链表&#xff08;双指针&#xff09;1.题目描述2.示例1&#xff1a;3.示例2&#xff1a;4.示例3&#xff1a;5.提示&#xff1a;二、解题思路1.思路2.复杂度分析&#xff1a;3.算法图解三、代码实现总结一、编程题&#xff1…