Android Studio教程10-Intent的详细使用
目录
- 1. Intent启动器
- 1.1. Intent的用途
- 1. 启动Activity
- 3. 传递广播
- 1.2. Intent类型
- 1.显示Intent
- 2.隐式Intent
- 1.1. Intent的用途
- 2. 构建Intent
- 3. 隐式Intent
1. Intent启动器
1.1. Intent的用途
1. 启动Activity
startActivity()
startActivityForResult()
:希望返回结果2. 启动服务
启动一个不适用用户界面而在后台执行操作的组件
startService()
:下载文件等,可携带任何必要的数据bindService()
: 使用客户端-服务器接口,从其他组件绑定到此服务
3. 传递广播
广播是任何应用均可接收的消息。系统将针对系统事件(例如:系统启动或设备开始充电时)传递各种广播
sendBroadcast()
sendOrderedBroadcast()
sendStickyBroadcast()
1.2. Intent类型
1.显示Intent
按名称(完全限定类名)指定要启动的组件
- 系统将立即启动 Intent 对象中指定的应用组件
// Executed in an Activity, so 'this' is the Context
// The fileUrl is a string URL, such as "http://www.example.com/image.png"
Intent downloadIntent = new Intent(this, DownloadService.class);
downloadIntent.setData(Uri.parse(fileUrl));
startService(downloadIntent);
2.隐式Intent
不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它。
- Android 系统通过将 Intent 的内容与在设备上其他应用的清单文件中声明的 Intent 过滤器进行比较,从而找到要启动的相应组件。 如果 Intent 与 Intent 过滤器匹配,则系统将启动该组件,并向其传递 Intent 对象。 如果多个 Intent 过滤器兼容,则系统会显示一个对话框,支持用户选取要使用的应用。
- Intent 过滤器是应用清单文件中的一个表达式,它指定该组件要接收的 Intent 类型。
// Create the text message with a string
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");// Verify that the intent will resolve to an activity
if (sendIntent.resolveActivity(getPackageManager()) != null) {startActivity(sendIntent);
}
2. 构建Intent
Intent包含的主要信息如下:
- 组件名称-用于显示Intent
- 操作:指定用于执行的通用操作-用于隐式Intent
ACTION_VIEW
ACTION_SEND
- 数据
- 类别:
- Extra: putExtra()
- 标志
3. 隐式Intent
<activity android:name="MainActivity"><!-- This activity is the main entry, should appear in app launcher --><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
</activity><activity android:name="ShareActivity"><!-- This activity handles "SEND" actions with text data --><intent-filter><action android:name="android.intent.action.SEND"/><category android:name="android.intent.category.DEFAULT"/><data android:mimeType="text/plain"/></intent-filter><!-- This activity also handles "SEND" and "SEND_MULTIPLE" with media data --><intent-filter><action android:name="android.intent.action.SEND"/><action android:name="android.intent.action.SEND_MULTIPLE"/><category android:name="android.intent.category.DEFAULT"/><data android:mimeType="application/vnd.google.panorama360+jpg"/><data android:mimeType="image/*"/><data android:mimeType="video/*"/></intent-filter>
</activity>
第一个 Activity MainActivity 是应用的主要入口点。当用户最初使用启动器图标启动应用时,该 Activity 将打开:
- ACTION_MAIN 操作指示这是主要入口点,且不要求输入任何 Intent 数据。
CATEGORY_LAUNCHER 类别指示此 Activity 的图标应放入系统的应用启动器。 如果 元素未使用 icon 指定图标,则系统将使用 元素中的图标。
这两个元素必须配对使用,Activity 才会显示在应用启动器中。
- ACTION_MAIN 操作指示这是主要入口点,且不要求输入任何 Intent 数据。
第二个 Activity ShareActivity 旨在便于共享文本和媒体内容。 尽管用户可以通过从 MainActivity 导航进入此 Activity,但也可以从发出隐式 Intent(与两个 Intent 过滤器之一匹配)的另一应用中直接进入 ShareActivity
转载于:https://www.cnblogs.com/haochen273/p/10298976.html
Android Studio教程10-Intent的详细使用相关推荐
- Android Studio 教程(1)----配置
Android Studio 教程 配置 [Android Studio的优势] 基于Gradle的构建支持 Android特定重构和快速修复 更加丰富的模板代码,让创建程序更简单 提示工具更好地对程 ...
- Android Studio教程– Hello World App
Welcome to the Android Studio Tutorial. This is the first article in the android tutorial series and ...
- Android Studio 教程:入门开发第一个程序
Android Studio 教程:入门开发第一个程序 2018.09.11 14:30 16005浏览 开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a ...
- Android Studio教程
Android Studio教程 安装Android Studio 万事开头难,当我看到身边的同学都美滋滋的运行成功了"helloworld"时,看着我刚安装好的Android S ...
- android studio官方教程 pdf,android studio教程pdf
android studio教程pdf [2021-02-13 02:22:01] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(& ...
- android studio最新教程pdf下载,android studio教程pdf下
android studio教程pdf下 [2021-02-13 15:00:57] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace( ...
- android studio 2021版本下载安装详细教程(超详细)2022,一步步教你
介绍如何安装android studio,目前版本是2021.1.1,虽然是2022年了,但是版本还是没更新. 一.下载 主程序我已经放到[andriod studio目录]下,密码3360,大家也不 ...
- 【干货】Android studio教程与问题汇总
最近想换个Android开发工具,了解了一下谷歌推出的Android Studio工具(以前一起用Eclipse),同时也给出了很多安卓开发相关的资料链接.本文是总结了安卓巴士上的一些好的帖子,废话不 ...
- Android studio教程与问题汇总
2019独角兽企业重金招聘Python工程师标准>>> 本帖为 安卓巴士 Android studio 专区将不断更新 Android studio 的相关资讯和知识,以及各种使用方 ...
最新文章
- hash tree算法
- UA MATH523A 实分析3 积分理论例题 集合的特征函数L2收敛的条件
- word 2013 题注、图注、插入图片自动修改大小、批量更新题注编号
- 从内置函数看 Python 的设计思想:len(x) 是否击败 x.len(),
- js元素事件绑定与解绑兼容代码
- 015-请问如果想进行bug的测评,怎么去评测bug?
- keil51免费版安装教程2032版本
- 论文写作过程中用到的软件、网站分享
- 文件删除需要管理员权限
- 电脑自动跳出计算机管理员登陆界面,解决运行wegame总是弹出用户账户控制界面的方法...
- 深度学习策略之图像预处理
- Windows Azure 虚机密码忘记处理
- 新闻与Android相关的话题,热门话题 - 换个角度看新闻 #iOS #Android
- 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)...
- OCR文本检测模型—SegLink
- <<算法很美>>——(三)十大排序算法(上)
- android 短信 8859 1,白话短信协议
- ubuntu下安装win10虚拟机提示没有可用的映像
- 详解项目管理认证(PMP、IPMP、ITPMP、CPMP)
- 浪潮NF5280M4使用IPMI安装操作系统