我是靠谱客的博主 彪壮火车,最近开发中收集的这篇文章主要介绍Android安卓——Intent通信(1),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本次学习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系统支持的常见动作字符串常量表
动作说明
ACTION_ANSWER打开接听电话的Activity,默认为Android内置的拨号盘界面
ACTION_CALL打开拨号盘界面并拨打电话,使用Uri中的数字部分作为电话号码
ACTION_DELETE打开一个Activity,对所提供的数据进行删除操作
ACTION_DIAL打开内置拨号盘界面,显示Uri中提供的电话号码
ACTION_EDIT打开一个Activity,对所提供的数据进行编辑操作
ACTION_INSERT打开一个Activity,在提供数据的当前位置插入新项
ACTION_PICK启动一个子Activity,从提供的数据列表中选取一项
ACTION_SEARCH启动一个Activity,执行搜索动作
ACTION_SENDTO启动一个Activity,向数据提供的联系人发送信息
ACTION_SEND启动一个可以发送数据的Activity
ACTION_VIEW最常用的动作,对以Uri方式传送的数据,根据Uri协议部分以最佳方式启动相应的Activity进行处理。对于http:address将打开浏览器查看;对于tel:address将打开拨号呼叫指定的电话号码
ACTION_WEB_SEARCH打开一个Activity,对提供的数据进行Web搜索

最后

以上就是彪壮火车为你收集整理的Android安卓——Intent通信(1)的全部内容,希望文章能够帮你解决Android安卓——Intent通信(1)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部