Android  隐式Intent的实例详解

Android  隐式Intent的实例详解

前言:

顾名思义,隐式意图就是在不明确设置激活对象的前提下寻找最匹配的组件,举个例子,比如有5个人:

(1)A:170cm
(2)B:160cm
(3)C:180cm
(4)D:190cm
(5)E:200cm

如果是显示意图的话,如果我们要指明选择A的话会说:”我选择A.“,但是如果是隐式意图,则会说:”我要选择170cm的人“,虽然没有指明要选A,但会寻找条件最匹配的人。

在intent过滤器中类似于上面例子中的”身高“条件的匹配条件有:

(1)action
(2)category
(3)data:scheme、host、path、type

当在程序中设置了这些激活组件的条件,程序就会去寻找最匹配的组件,但是注意:只要有一点不匹配,则就是不匹配;

比如:

Intent intent = new Intent();
intent.setAction("a");//此句只是指定了Action
startActivity(intent);//寻找最匹配的组件激活,内部会调用intent.addCategory("Android.intent.category.DEFAULT"); 

隐式Intent的核心代码

首先是在AndroidManifest.xml中为某个Activity设置意图过滤器:

<activity>
  <intent-filter>
    <action android:name="...."/>
    <category android:name="...."/>
    <category android:name="android.intent.category.DEFAULT"/>  <!--此句一般都要加 -->
    <data android:scheme="..." android:host="..." android:path="/..." android:type="..."/>
  </intent-filter>
</activity>

以上设置是设置Activity本身的属性,接下来在程序中要设置的是我们要寻找时匹配的条件:

(1)Intent intent = new Intent();
(2)intent.setAction("....");
(3)intent.addCategory("....");
(4)intent.setData(Uri.parse("...."));//设置data的scheme、host、path条件
(5)intent.setDataAndType(Uri.parse(""),String type);//同时设置data的scheme、host、path、type条件
(6)startActivity(intent);//调用intent.addCategory("android.intent.category.DEFAULT");

以上就是Android 隐式Intent 的详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Android Studio Intent隐式启动,发短信,拨号,打电话,访问网页等实例代码

    Android Studio Intent隐式启动,发短信,拨号,打电话,访问网页等实例代码 功能 创建5个按钮,隐式启动.发短信.拨号按钮.电话按钮.打开网页按钮.通过使用Intent来完成各自按钮下的功能 代码目录如下 详细代码如下: activity_main.xml代码如下 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sc

  • Android Intent调用 Uri的方法总结

    Android Intent调用 Uri的方法总结 //调用浏览器 Uri uri = Uri.parse(""); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it); //显示某个坐标在地图上 Uri uri = Uri.parse("geo:38.899533,-77.036476"); Intent it = new Intent(Intent.Action_VIEW,uri);

  • Android编程使用Intent传递图片的方法详解

    本文实例讲述了Android编程使用Intent传递图片的方法.分享给大家供大家参考,具体如下: 基本思路是先把bitmap转化为byte数组,用Intent传递数组,在将数组转化为bitmap bitmap转化为byte数组的方法: private byte[] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.

  • Android编程实现全局获取Context及使用Intent传递对象的方法详解

    本文实例讲述了Android编程实现全局获取Context及使用Intent传递对象的方法.分享给大家供大家参考,具体如下: 一.全局获取 Context Android 开发中很多地方需要用到 Context,比如弹出 Toast.启动活动.发送广播.操作数据库-- 由于很多操作都是在活动中进行的,而活动本身就是一个 Context 对象,所以获取 Context 并不是那么困难. 但是,当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离 Activity 类,由此在某些情况下,获

  • Android Intent发送广播消息实例详解

    Android Intent发送广播消息 Intent的另一种用途是发送广播消息,应用程序和Android系统都可以使用Intent发送广播消息,广播消息的内容是可以与应用程序密切相关的数据信息,也可以是Android的系统信息,例如网络连接变化.电池电量变化.接收的短信或系统设置变化等.如果应用程序注册了BroadcastReceiver,则可以接受到指定的广播信息. 使用Intent发送广播消息非常简单,只须创建一个Intent,并调用sendBroadcast()函数就可把Intent携带

  • Android 通过Intent使用Bundle传递对象详细介绍

    Android 通过Intent使用Bundle传递对象 Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法. 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable. 两种序列化方式的区别: 1.在使用内存的时候,Parcelable比Serializa

  • Android 隐式Intent的实例详解

    Android  隐式Intent的实例详解 前言: 顾名思义,隐式意图就是在不明确设置激活对象的前提下寻找最匹配的组件,举个例子,比如有5个人: (1)A:170cm (2)B:160cm (3)C:180cm (4)D:190cm (5)E:200cm 如果是显示意图的话,如果我们要指明选择A的话会说:"我选择A.",但是如果是隐式意图,则会说:"我要选择170cm的人",虽然没有指明要选A,但会寻找条件最匹配的人. 在intent过滤器中类似于上面例子中的&q

  • Android  隐式Intent的实例详解

    Android  隐式Intent的实例详解 前言: 顾名思义,隐式意图就是在不明确设置激活对象的前提下寻找最匹配的组件,举个例子,比如有5个人: (1)A:170cm (2)B:160cm (3)C:180cm (4)D:190cm (5)E:200cm 如果是显示意图的话,如果我们要指明选择A的话会说:"我选择A.",但是如果是隐式意图,则会说:"我要选择170cm的人",虽然没有指明要选A,但会寻找条件最匹配的人. 在intent过滤器中类似于上面例子中的&q

  • swift 隐式可选型实例详解

    1.隐式可选型的基本使用 var errorMessage: String? = nil errorMessage = "Not Found" "The message is " + errorMessage! 隐式可选型的定义 var errorMessage: String! = nil errorMessage = "Not Found" "The message is " + errorMessage 隐式可选型不需要

  • Android activity堆栈及管理实例详解

    本示例演示如何通过设置Intent对象的标记,来改变当前任务堆栈中既存的Activity的顺序. 1. Intent对象的Activity启动标记说明: FLAG_ACTIVITY_BROUGHT_TO_FRONT 应用程序代码中通常不设置这个标记,而是由系统给单任务启动模式的Activity的设置. FLAG_ACTIVITY_CLEAR_TASK 如果给Intent对象添加了这个标记,那么在Activity被启动之前,会导致跟这个Activity关联的任何既存的任务都被清除.也就是说新的Ac

  • Android USB转串口通信开发实例详解

     Android USB转串口通信开发实例详解 好久没有写文章了,年前公司新开了一个项目,是和usb转串口通信相关的,需求是用安卓平板通过usb转接后与好几个外设进行通信,一直忙到最近,才慢慢闲下来,趁着这个周末不忙,记录下usb转串口通信开发的基本流程. 我们开发使用的是usb主机模式,即:安卓平板作为主机,usb外设作为从机进行数据通信.整个开发流程可以总结为以下几点: 1.发现设备 UsbManager usbManager = (UsbManager) context.getSystem

  • Android 广播大全 Intent Action 事件详解

    具体内容如下所示: Intent.ACTION_AIRPLANE_MODE_CHANGED; //关闭或打开飞行模式时的广播 Intent.ACTION_BATTERY_CHANGED; //充电状态,或者电池的电量发生变化 //电池的充电状态.电荷级别改变,不能通过组建声明接收这个广播,只有通过Context.registerReceiver()注册 Intent.ACTION_BATTERY_LOW; //表示电池电量低 Intent.ACTION_BATTERY_OKAY; //表示电池电

  • Spring mvc 分步式session的实例详解

    Spring mvc 分步式session的实例详解 Session代表服务器与浏览器的一次会话过程,它的信息是保存在服务器端的.在Servlet中,session指的是HttpSession类的对象.服务器在创建session后,会把sessionid以cookie的形式回写给客户端.只要客户端的浏览器不关,每一次访问服务器都会带上这个sessionid.这样就可以在每次请求的时候获取到session的信息. 下面以spring MVC以例来说明如果创建分步式session. 1.login

  • Android使用xml自定义图片实例详解

    Android使用xml自定义图片实例详解 实现效果图: 白色圆角图片 bg_round_rectangle_white.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-

  • Android TextView Marquee的应用实例详解

    Android TextView Marquee的应用实例详解 亲测可能.直接上代码. Xml代码 <TextView android:id="@+id/toolbar_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" androi

  • Android 中读取Excel文件实例详解

    Android 中读取Excel文件实例详解 最近有个需求需要在app内置数据,新来的产品扔给了我两个Excel表格就不管了(两个表格格式还不统一...),于是通过度娘等方法找到了Android中读取Excel表格文件的一种方法,记录一下. 闲话一下Excel中工作簿和工作表的区别: 工作簿中包含有工作表.工作簿可以由一张或多张工作表组成,一个工作簿就是一个EXCEL表格文件. 好了,开始读取表格文件吧. 前提 首先,我们假设需要读取的表格文件名字为test.xls, 位于assets根目录下.

随机推荐