Android开发中Intent意图对象使用方法

Android开发中Intent意图对象使用方法

Android 基本的设计理念室鼓励减少组件间的耦合,因此Android提供了Intent(意图),Intent提供了一种通用的消息系统,它应许在你的应用程序与其他的应用程序间传递Intent 来执行动作和产生时间。使用Intent可以激活Android应用三种类型的核心组件:活动、服务和广播接受者。

Intent可以划分为显式意图和隐式意图。

显式意图:调用Intent.setComponent()\Intent.setClassName()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了要激活的组件是哪个组件。

隐式意图:没有明确指定组件名的Intent为隐式意图,Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。

显式意图:

Intent intent=new Intent();

intent.setClassName("cn.china.singleinstance","cn.china.singleinstance.SingleInstanceActivity");

startActivity(intent);

隐式意图:

Intent intent=new Intent();

intent.setAction("cn.china.myActivity");

intent.addCatogory("cn.china.category.myCategory");

startActivity(intent); //此方法内部会为intent对象添加一个默认类别 (“android.intent.category.DEFAULT”)

// 规律:(前提:没设置数据参数的情况下)只要意图Intent中的Action 和Category 都出现在 清单文件中组件定义的intent-filter中,就能与之匹配,否则匹配失败


如果组件过过滤器中定义了数据申明时候,程序中为了与之匹配,则要添加数据才能激活该组件

<data android:scheme="cn" android:host="www.china.cn" android:path="xxx"/>

<data android:mimeType="image/*"/> 

(.txt文件的数据类型为:text/plain ; .xml文件的数据类型为:text/xml ;.jpeg图片的数据类型为: image/jpeg )

intent.setData(Uri.parse("cn://www.china.cn/xxx"));

intent.setType("image/jpeg"); //以jpeg图片为例

startActivity(intent);


因为intent.setType()方法会清楚掉意图对象中data属性,所以上面的方法行不通

intent.setDataAndType(Uri.parse("cn://www.china.cn/xxx"), "image/jpeg"); //同时设置数据了类型;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值