目录

  • 1. Intent启动器

    • 1.1. Intent的用途

      • 1. 启动Activity
      • 3. 传递广播
    • 1.2. Intent类型
      • 1.显示Intent
      • 2.隐式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 才会显示在应用启动器中。
  • 第二个 Activity ShareActivity 旨在便于共享文本和媒体内容。 尽管用户可以通过从 MainActivity 导航进入此 Activity,但也可以从发出隐式 Intent(与两个 Intent 过滤器之一匹配)的另一应用中直接进入 ShareActivity

转载于:https://www.cnblogs.com/haochen273/p/10298976.html

Android Studio教程10-Intent的详细使用相关推荐

  1. Android Studio 教程(1)----配置

    Android Studio 教程 配置 [Android Studio的优势] 基于Gradle的构建支持 Android特定重构和快速修复 更加丰富的模板代码,让创建程序更简单 提示工具更好地对程 ...

  2. Android Studio教程– Hello World App

    Welcome to the Android Studio Tutorial. This is the first article in the android tutorial series and ...

  3. Android Studio 教程:入门开发第一个程序

    Android Studio 教程:入门开发第一个程序 2018.09.11 14:30 16005浏览 开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a ...

  4. Android Studio教程

    Android Studio教程 安装Android Studio 万事开头难,当我看到身边的同学都美滋滋的运行成功了"helloworld"时,看着我刚安装好的Android S ...

  5. android studio官方教程 pdf,android studio教程pdf

    android studio教程pdf [2021-02-13 02:22:01]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(& ...

  6. android studio最新教程pdf下载,android studio教程pdf下

    android studio教程pdf下 [2021-02-13 15:00:57]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace( ...

  7. android studio 2021版本下载安装详细教程(超详细)2022,一步步教你

    介绍如何安装android studio,目前版本是2021.1.1,虽然是2022年了,但是版本还是没更新. 一.下载 主程序我已经放到[andriod studio目录]下,密码3360,大家也不 ...

  8. 【干货】Android studio教程与问题汇总

    最近想换个Android开发工具,了解了一下谷歌推出的Android Studio工具(以前一起用Eclipse),同时也给出了很多安卓开发相关的资料链接.本文是总结了安卓巴士上的一些好的帖子,废话不 ...

  9. Android studio教程与问题汇总

    2019独角兽企业重金招聘Python工程师标准>>> 本帖为 安卓巴士 Android studio 专区将不断更新 Android studio 的相关资讯和知识,以及各种使用方 ...

最新文章

  1. hash tree算法
  2. UA MATH523A 实分析3 积分理论例题 集合的特征函数L2收敛的条件
  3. word 2013 题注、图注、插入图片自动修改大小、批量更新题注编号
  4. 从内置函数看 Python 的设计思想:len(x) 是否击败 x.len(),
  5. js元素事件绑定与解绑兼容代码
  6. 015-请问如果想进行bug的测评,怎么去评测bug?
  7. keil51免费版安装教程2032版本
  8. 论文写作过程中用到的软件、网站分享
  9. 文件删除需要管理员权限
  10. 电脑自动跳出计算机管理员登陆界面,解决运行wegame总是弹出用户账户控制界面的方法...
  11. 深度学习策略之图像预处理
  12. Windows Azure 虚机密码忘记处理
  13. 新闻与Android相关的话题,热门话题 - 换个角度看新闻 #iOS #Android
  14. 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)...
  15. OCR文本检测模型—SegLink
  16. <<算法很美>>——(三)十大排序算法(上)
  17. android 短信 8859 1,白话短信协议
  18. ubuntu下安装win10虚拟机提示没有可用的映像
  19. 详解项目管理认证(PMP、IPMP、ITPMP、CPMP)
  20. 浪潮NF5280M4使用IPMI安装操作系统

热门文章

  1. 数据产品设计专题(4)- 程序化交易业务架构模型
  2. 风暴数码论坛教程--apk和odex的介绍和合并
  3. [linux基础学习]文件和目录属性
  4. 右键 Dos在这里 删除
  5. 10个小动作帮你简化生活
  6. python爬虫---从零开始(一)初识爬虫
  7. 2017-9-11-颜色空间
  8. HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))
  9. Struts2框架的学习遇到的问题
  10. iOS高效开发必备的10款Objective-C类库