使用Uri隐式方式启动Activity并传递参数

本文介绍如何在Android应用中设置URI隐式意图过滤器,使其他应用能通过特定URL格式跳转并传递参数至目标应用。通过在AndroidManifest.xml中配置intent-filter和data标签,以及在Activity中解析传入的参数,实现跨应用调用。

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

要使其他app可以跳转到本app某个Activity,并传递参数,可以使用Uri隐式方式来实现。方法如下:

1.AndroidManifest.xml中增加intent-filter标签:

<activity
    android:name=".ui.MainActivity"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <!-- 在data里设置了scheme和host,则该Activity可以接收和处理类似于"data://main/XXX"的链接 -->
        <data
            android:host="main"
            android:scheme="data" />
    </intent-filter>
</activity>

2.Activity类的onCreate中添加解析参数的逻辑:

Uri uri = getIntent().getData();
if (uri != null) {
    // 通过隐式方式跳转而来
    String id = uri.getQueryParameter("id");
    String name = uri.getQueryParameter("name");
    // 逻辑处理
}

3.其他app中跳转时的逻辑:

Uri uri = Uri.parse("data://main/?id=id1&name=name1");
Intent intent = new Intent(null, uri);
startActivity(intent);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值