本系列文章,参考《第一行代码》,作为个人笔记

更多内容:更多精品文章分类

从0系统学Android-2.5更多隐式Intent用法

上一节中我们学习了通过隐式 Intent 来启动 Activity。实际上隐式 Intent 还有更多的内容。

使用隐式 Intent 我们不仅可以启动自己程序内符合要求的Activity 还可以启动其他程序中符合要求的 Activity,这也使得 Android 中多个应用程序之间的功能共享成为可能。

比如:我们需要在我们的程序中展示一个网页,则只需要调用系统浏览器来打开这个网页就可以了。

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://blog.csdn.net/sydMobile/article/details/78890731"));
startActivity(intent);

解释一下:Intent.ACTION_VIEW 这是一个 Android 系统的内置的 action。通过 Uri.parse() 方法,将一个网址字符串解析成一个 Uri 对象。给 setData 方法。Uri 对象主要用于指定当前 Intent 正在操作的数据。

上面的代码中,我们可能对 setData() 部分感到陌生。这个方法并不复杂,就是接收一个 Uri 对象。主要用于指定当前的 Intent 正在操作的数据,而这些数据通常是通过字符串的形式传入到 Uri.parse() 方法中产生。

与之对应,我们可以在 <intent-filter> 标签中再配置一个 <data> 标签。用于更精确地响应当前的 Activity 能够响应什么类型的数据。

<intent> 标签中可以配置:

  • android:scheme 用于指定数据的协议部分。比如 http
  • android:host 指定主机部分 比如:www.baid.com
  • android:path 指定主机和端口之后的部分。如一段网址跟在域名后面的内容
  • android:mimeType 指定可以处理的数据类型,可以使用通配符来指定

只有 <data> 标签中指定的内容和 Intent 中携带的数据完全一致,Activity 才可以响应。一般在 <data> 标签中不需要指定这么多的信息。

除了 http 协议以外,还有很多其他的协议,比如:geo 表示显示地理位置、tel 表示拨打电话。

展示一下调用系统拨号界面

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);

从0系统学Android-2.5更多隐式Intent用法的更多相关文章

  1. 更多隐式Intent用法

    上几篇无论是显示的Intent或者隐式的Intent,都是要跳转的自己添加指定的页面,如果想要跳转到百度首页或者跳转到联系人面板等,前面的知识显然是很不实用的.这里,将要针对其它的一些Intent用法 ...

  2. 安卓开发学习笔记(四):Android Stuidio无法实现隐式Intent是为什么?

    一.首先检查我们的代码: FirstActivity.java(主活动程序当中的代码):Button3监听器后面的代码就是我们隐式Intent的业务逻辑所在了,大家可以往下面看看,大概在代码的第57行 ...

  3. Android中显示和隐式Intent的使用

    显示启动activity                                                                                         ...

  4. 从0系统学Android--4.1探究碎片

    从0系统学Android--4.1探究碎片 本系列文章目录:更多精品文章分类 本系列持续更新中.... 初级阶段内容参考<第一行代码> 第四章:手机平板要兼顾--探究碎片 平板电脑和手机最 ...

  5. 从0系统学Android--3.7 聊天界面编写

    从0系统学Android--3.7 聊天界面编写 本系列文章目录:更多精品文章分类 本系列持续更新中.... 3.7 编写界面的最佳实践 前面学习了那么多 UI 开发的知识,下面来进行实践,做一个美观 ...

  6. 从0系统学Android--3.6 RecyclerView

    从0系统学Android--更强大的滚动控件---RecyclerView 本系列文章目录:更多精品文章分类 本系列持续更新中.... 参考<第一行代码> 首先说明一点昨天发了一篇关于 L ...

  7. 从0系统学Android--3.5 最常用和最难用的控件---ListView

    从0系统学Android-- 3.5 最常用和最难用的控件---ListView 本系列文章目录:更多精品文章分类 本系列持续更新中.... 3.5 最常用和最难用的控件---ListView Lis ...

  8. 从0系统学Android--3.2四种基本布局

    从0系统学Android--3.2四种基本布局 本系列文章目录:更多精品文章分类 本系列持续更新中.... 3.3 系统控件不够用?创建自定义控件 上一节我们学习了 Android 中的一些常用的控件 ...

  9. 从0系统学Android--3.1编写UI界面

    从0系统学Android--3.1编写UI界面 本系列文章目录:更多精品文章分类 本系列持续更新中.... 界面设计和功能开发同样重要,界面美观的应用程序不仅可以大大增加用户粘性,还能帮我们吸引到更多 ...

随机推荐

  1. DAX 第三篇:过滤器函数

    过滤器函数允许你操纵筛选上下文以创建动态的计算. 一,筛选上下文的构成 DAX中的筛选上下文由三部分构成:交叉过滤构成的过滤,查询上下文中每行的列值构成的过滤,外部切片器构成的显式过滤. 1,交叉过滤 ...

  2. 【译】WebAPI,Autofac,以及生命周期作用域

    说明 原文地址:http://decompile.it/blog/2014/03/13/webapi-autofac-lifetime-scopes/ 介绍 这是一篇关于AutoFac的生命周期作用域 ...

  3. C#中的Contains与IndexOf的区别

     C#中要判断一个字符串是否包含另一个字符串,常用的两种方法是 str.Contains和str.IndexOf 这两个方法的区别是: Contains是找指定字符串是否包含一个字串,返回值的bo ...

  4. bootstrap datatable editor 扩展

    需求: a. 表单样式更改. b. 表单大小更改. 思路: a. 通过设置modal css更改样式和大小.缺点,全局性的更改. b. 更改bootstrap-editor,可以通过某种方式将参数传入 ...

  5. 章节十五、3-对象仓库、Page Factory实例应用

    一.如何创建对象仓库 package pageclasses; import org.openqa.selenium.WebDriver; import org.openqa.selenium.Web ...

  6. 【JDK】JDK源码分析-List, Iterator, ListIterator

    List 是最常用的容器之一.之前提到过,分析源码时,优先分析接口的源码,因此这里先从 List 接口分析.List 方法列表如下: 由于上文「JDK源码分析-Collection」已对 Collec ...

  7. 【iOS】[[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil] 异常

    这两天照书上的例子写代码时,出现了这个异常. 上网查了不少,有人说链接失效什么的……但发现都不是那些原因,问题出现在下面这句代码: [[NSBundle mainBundle] loadNibName ...

  8. CSDN Markdown 超链接

    CSDN Markdown 的超链接总是在当前页面打开新的链接,后来发现了一种可以在新窗口打开超链接的语法,如下: <a href="https://zh.wikipedia.org/ ...

  9. LVS + Keepalived + Nginx基于DR模式构建高可用方案

    在大型网站中一般服务端会做集群,同时利用负载均衡器做负载均衡.这样有利于将大量的请求分散到各个服务器上,提升网站的响应速度.当然为了解决单点故障的问题,还会做热备份方案.这里演示利用LVS做负载均衡器 ...

  10. Git 从master拉取代码创建新分支

    从master拉取新分支并push到远端 开发过程中经常用到从master分支copy一个开发分支: 1.切换到被copy的分支(master),并且从远端拉取最新版本 $git checkout m ...