Android 显示Intent和隐式Intent的差别

本文深入解析Android开发中的Intent机制,区分显示Intent与隐式Intent的不同应用。显示Intent直接指定目标Activity,而隐式Intent通过Action、Data、Category在AndroidManifest.xml中设定,由系统匹配合适的Activity。了解两者差异有助于提升应用程序的灵活性与扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Android开发过程中,Intent又被细分显示Intent和隐式Intent,两者的区别在哪呢?

显示Intent
显式Intent的意思是指可以直接指定需要打开的Activity对应的Java的类
用代码表示如下:

Intent intent = new Intent(this, FirstActivity.class);
startActivity(intent);

或者另一种写法

Intent intent = new Intent;
intent.setClass(this,  FirstActivity.class);  
startActivity(intent);

这两种写法效果都是一样的,从一个Activity跳到另一个指定的Activity;

隐式Intent
隐式Intent指的是不明确指定启动哪个Activity,而是通过在AndroidManifest.xml文件中设置Action、Data、Category,让系统来筛选出合适的Activity。筛选是根据所有的来筛选。
例如:
下面以Action为例:
首先要在AndroidManifest.xml文件中,被调用的Activity要有一个带有并且包含的Activity,设定它能处理的Intent,并且category设为"android.intent.category.DEFAULT"。action的name是一个字符串,可以自定义,例如这里设成为"demo":

<activity  
    android:name="com.example.app.FirstActivity">  
    <intent-filter>  
        <action android:name="demo"/>  
        <category android:name="android.intent.category.DEFAULT"/>  
    </intent-filter>  
</activity>  

最后在主函数里面setAction就可以实现了

Intent intent = new Intent();  
intent.setAction("demo");  
startActivity(intent);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值