android 隐式启动服务,安卓Activity隐式启动全面解析

本文详细解析了安卓隐式启动Activity的原理和实践,包括action、category和data的匹配规则,并通过具体示例展示了如何通过隐式启动在不同应用间跳转和实现H5与native交互。

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

前言

安卓有两种方式启动Activity,一种是显示启动,另外一种是隐式启动。显示启动我们在项目中经常用到,大家也都比较熟悉。今天我们主要讲解一下隐式启动。隐式启动常用于不同应用之间的跳转(例如打开支付宝微信的支付页面),也可用于H5与native之间的交互。隐式启动就是action,category和data的匹配,我们先来说下匹配的规则,然后通过具体的例子去验证。

匹配规则

action的匹配规则

action在Intent-filter可以设置多条

intent中必须指定action否则匹配失败且intent中action最多只有一条

intent中的action和intent-filter中的action必须完全一样时(包括大小写)才算匹配成功

intent中的action只要与intent-filter其中的一条匹配成功即可

下面的两个intent都可以匹配上面MainActivity的action规则

Intent intent = new Intent("com.jrmf360.action.ENTER");

startActivity(intent);

Intent intent2 = new Intent("com.jrmf360.action.ENTER2");

startActivity(intent2);

category的匹配规则

category在intent-filter中可以有多条

category在intent中也可以有多条

intent中所有的category都可以在intent-filter中找到一样的(包括大小写)才算匹配成功

通过intent启动Activity的时候如果没有添加category会自动添加android.intent.category.DEFAULT,如果intent-filter中没有添加android.intent.category.DEFAULT则会匹配失败

data的匹配规则

在说data的匹配规则之前我们先来说说data的语法

android:host="string"

android:mimeType="string"

android:path="string"

android:pathPattern="string"

android:pathPrefix="string"

android:port="string"

android:scheme="string"/>

举个栗子

scheme://host:port/path|pathPrefix|pathPattern

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值