在Android studio中Intent的几种基本使用方法

 在Android开发中,Intent是最基本也是最常用的操作,在Activity,Service,BroadcastReceiver这些核心组件中也需要Intent进行操作,下面我们具体介绍Intent在开发中的一些基本用法

假定目前有FirstActivitySecondActivity两个活动,其中FirstActivity为初始活动启动活动

SecondActivity为被启动活动

显示Intent (直接指定目标组件,属于精确匹配)

(1)在构造方法中实现

//创建一个目标意图,this为当前活动FirstActivity
Intent intent=new Intent(this,SecondActivity.class);

//调用startActivity方法启动SecondActivity
startActivity(intent);

(2)调用setClass方法

//创建一个意图
Intent intent=new Intent();

//调用setClass方法设置要跳转的意图
intend.setClass(this,SecondActivity.class);

//调用startActivity方法启动SecondActivity
startActivity(intent);

(3)调用setComponent方法

//创建一个意图
Intent intent=new Intent();

//创建一个包含目标活动的ComponentName组件
ComponentName component = new ComponentName(this, SecondActivity.class);

//调用setComponent方法将封装信息传给意图对象intent
intent.setComponent(component);

//调用startActivity方法启动SecondActivity
startActivity(intent);

隐式Intent(不会直接指定需要激活的目标组件,属于模糊匹配)

 与显示Intent不同的是,隐式Intent不需要指定具体的活动名称,通过动作进行匹配(action)

在清单文件(AndroidManifest.xml)中找到.SecondActivity的代码段

设置action属性如下

设置category属性如下

注:action属性和category属性可以有多条,匹配上任意一条即可

<activity android:name=".SecondActivity">
    <intent-filter> 
            <!--设置action属性-->
        <action android:name="android.intent.action.Second" /> 
            <!--设置category属性-->
        <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity>

设置完动作属性后,便可以用代码中setAction方法来传递设置相应的活动动作了,代码如下

//创建一个意图对象
Intent intent=new Intent();
//设置action动作
intent.setAction("android.intent.action.Second");
//调用startActivity方法启动SecondActivity
startActivity(intent);

其实,在Android开发中也提供了一些常用的隐式调用系统应用的action

实例化一个Intent对象

Intent intent=new Intent();

发送短信

intent.setAction(Intent.ACTION_SENDTO);
//或者
intent.setAction("android.intent.action.SENDTO");

准备拨号  

intent.setAction(Intent.ACITON_DIAL);
//或者
intent.setAction("android.intent.action.DIAL");

 发送内容

intent.setAction(Intent.ACTION_SEND);
//或者
intent.setAction("android.intent.action.SEND");

以上就是一些Android开发中的一些基本用法了(记录一下学习过程)

觉得有用的话点个赞再走呗~

猜你喜欢

转载自blog.csdn.net/Lic_Ac/article/details/127232170