Android安卓——Intent通信(1)
来源:互联网 发布:java中不合法的标识符 编辑:程序博客网 时间:2024/06/01 09:04
本次学习Android中最重要的Intent。
Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息。
本次学习在介绍了Intent的作用之后,主要讲解怎么在Activity中使用Intent,比如:Activity的显示跳转,隐式跳转。
一、Intent简介
- Intent也可称为一个在不同组件之间传递的消息,这个消息在到达接收组件后,接收组件会执行相关的动作
- Intent为Activity、Service和BroadcastReceiver等组件提供交互能力
- Intent的用途
- 启动Activity和Service
- 在Android系统上发布广播消息
- 广播消息可以是接收到特定数据或消息,也可以是手机的信号变化或电池的电量过低等信息
二、启动Activity
- 在Android系统中,应用程序一般都有多个Activity,Intent可以实现不同Activity之间的切换和数据传递
- 启动Activity方式
- 显式启动,必须在Intent中指明启动的Activity所在的类
- 隐式启动, Android系统根据Intent的动作和数据来决定启动哪一个Activity,也就是说在隐式启动时,Intent中只包含需要执行的动作和所包含的数据,而无需指明具体启动哪一个Activity,选择权有Android系统和最终用户来决定
显式启动
- 使用Intent显式启动Activity
- 创建一个Intent
- 指定当前的应用程序上下文以及要启动的Activity
- 把创建好的这个Intent作为参数传递给startActivity()方法
Intent intent = new Intent(IntentDemo.this, ActivityToStart.class);startActivity(intent);
隐式启动
- 优点:不需要指明需要启动哪一个Activity,而由Android系统来决定,有利于使用第三方组件
- 隐式启动Activity时,Android系统在应用程序运行时解析Intent,并根据一定的规则对Intent和Activity进行匹配,使Intent上的动作、数据与Activity完全吻合
- 匹配的Activity可以是应用程序本身的,也可以是Android系统内置的,还可以是第三方应用程序提供的。因此,这种方式更加强调了Android应用程序中组件的可复用性
- 在缺省情况下,Android系统会调用内置的Web浏览器
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));startActivity(intent);
- Intent的动作是Intent.ACTION_VIEW,根据URI的数据类型来匹配动作
- 数据部分的URI是Web地址,使用Uri.parse(urlString)方法,可以简单的把一个字符串解释成Uri对象
- Intent的语法如下
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlString));
- Intent构造函数的第1个参数是Intent需要执行的动作
- 第2个参数是URI,表示需要传递的数据
- Android系统支持的常见动作字符串常量表
阅读全文
0 0
- Android安卓——Intent通信(1)
- Android安卓——Intent(2)传递数据
- Android安卓——Intent(3)过滤器
- android应用安全——组件通信安全(Intent)
- android应用安全——组件通信安全(Intent)
- Android组件通信——Intent
- 安卓学习(一)——Intent探索
- 安卓基础——Intent与Intent Filters(阅读笔记)
- Android(安卓)intent打开压缩文件
- 安卓-android.intent.category.DEFAULT
- Android Intent 通信
- Android组件通信--Intent
- Android通信组件Intent
- android intent 组件通信
- 安卓开发——Intent能传递的数据类型
- 安卓开发——intent机制详解
- 安卓入门笔记之Activity信使—intent
- 安卓——套接字Socket通信(未完)
- 贪心算法解决汽车加油问题
- 递归和非递归分别实现strlen
- VM下的linux虚拟机ifconfig没有IP
- 尘埃落定-校招求职历程
- ionic3开发系列——如何导入自定义资源图标库
- Android安卓——Intent通信(1)
- 青岛游记2
- 使用三目运算嵌套方法 或 临时变量方法: 获取三个整数中最大值的数
- Java结构语句
- Arrays常用方法源码
- 数据结构实验之串一:KMP简单应用
- BigDecimal类的使用方法详解
- 【C++】用模板实现顺序表Vector
- mac 利用iTerm2 实现SSH自动登录