Android学习笔记整理(8)--Activity的显式意图和隐式意图

Android中Intent寻找目标组件的方式分为两种,一种是显式意图,另一种是隐式意图

1.显式意图

在通过Intent启动Activity时,需要明确指定激活组件的名称。在程序中,如果需要在本应用中启动其他的Activity时,可以使用显式意图来启动Activity,示例代码如下

Intent intent=new Intent(this,Activity02.class);//创建Intent对象
startActivity(intent);//开启Activity

上述代码主要是通过Intent的构造方法来创建Intent对象,构造方法接受两个参数,一个是Context要求提供一个启动Activity的上下文,第二个参数Class则是指定要启动的目标Activity。

除了通过指定类名开启组件外,显式意图还可以根据目标组件的包名、全路径名来指定开启组件

intent.setClassName("com.example.Activity","com.example.Activity.XXX");
startActivity(intent);

2.隐式意图

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

<activity android:name="com.example.intent.Activity02">
     <intent-filter>
          <action android:name="com.example.xxx"/>
          <category android:name="android.intent.category.DEFAULT"/>
     </intent-filter>
</activity>

上述代码中,<action>标签指明了当前Activity可以相应的动作为"com.example.xxx”,而<category>标签则包含了一些类别的信息,只有当<action>和<category>中的内容同时匹配时,Activity才会同时被开启

在Activity类中代码如下

Intent intent=new Intent();//创建Intent对象
intent.setAction("com.example.xxx");//设置动作和清单文件一样
startActivity(intent);//开启Activity

3.两种意图使用的情景

显式意图开启组件时必须要指定组件的名称,一般只在本应用程序切换组件时使用

隐式意图功能要比显式意图更加强大,不仅可以开启本应用的组件,还可以开启其他应用的组件,例如打开系统自带的功能(照相机,浏览器等)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值