Android Activity Intent隐式启动

本文深入解析Android应用中隐式启动的概念、关键规则及其在启动系统活动时的强大功能。通过实例演示如何利用隐式意图(Intent)启动浏览器、相册等系统内置活动,展示其便利性。

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

相比于activity显式启动,以直接指明需要启动的组件的类名来启动Activity,隐式启动则显得比较“麻烦”一些,但是却拥有更强大的功能。
显式启动需要指定启动对象的报名和类名。隐式启动指定一些规则,只要对应就能启动成功。当两种启动方式同时存在的时候,以显式为主。
当使用隐式启动的时候,我们需要知道,在AndroidManifest.xml文件中定义过滤器,intent-filter 其中有三个属性 action,category和data,同时一个activity可以对应多组intent-filter,只要与其中一组匹配就可以了。

action匹配规则:
action是一个字符串,必须要在intent中手动设置,若是不设置的话报找不到指定activity的错误。规则是intent中设置的action种类是intent-filter中设置的action种类的子集。在intent中设置了一个,或多个,必须要在intent-filter中全部匹配到。

category匹配规则:
category也是一个字符串,这个在intent中可以不设置,但是需要在manifest文件中设置为DEFAULT,否则也会报找不到activity的错误。
同样的在intent中设置的category的类型必须要在intent-filter中匹配到。

data匹配规则:
data在intent或者manifest中都可以不定义,因为这不是必需的,当启动某些activity的时候才会需要,但是若是在intent中设置了的话,那么必须要在intent-filter中至少匹配,和action类似。

隐式启动中,往往需要将在intent中设置到的Action,Category和Data全部匹配到AndroidManifest.xml中注册的activity的类型才能够启动成功。
隐式启动不光光能够启动自己程序中的活动,而且还能够启动其他程序的活动。这就是它的强大之处。
比如,下面我们启动系统的浏览器。

Intent intent = new Intent(Intent.ACTION_VIEW);            intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);

启动系统的相册

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
 intent.setType("image/*");
 startActivityForResult(intent, REQUEST_CODE);

这样我们就能够直接启动系统的自带的活动。是不是很方便呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值