Android App之间跳转和传值

假设由应用A跳转到应用B。

前提是应用B存在,可以使用getPackageManager().getPackageInfo("应用B的包名", 0);方法判断应用B是否存在。

方式一、通过 ComponentName 类实现

应用A中的代码如下:

Intent intent1 = new Intent();
ComponentName name = new ComponentName("应用B的包名","应用B中跳转到的activity的全路径");
intent1.setComponent(name);
intent1.putExtra("data","传递的数据");
startActivity(intent1);

应用B中的配置和代码:

AndroidManifest中对应的Activity下添加 android:exported="true" 表示允许其它应用调用当前组件;

B代码中

Intent intent=this.getIntent();
if(null!=intent.getStringExtra("data")){
    //处理数据
}

方式二、Intent隐式调起的方式

应用A:

Intent intent2=new Intent();
intent2.setAction("定义的action,要与后面B中使用的保持一致");
intent2.putExtra("data","传递的数据");
startActivity(intent2);

应用B:

AndroidManifest中

<activity android:name="要跳转的指定类">
    <intent-filter>
        <action android:name="定义的action,要与前面A中的保持一致"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

B代码中

Intent intent=this.getIntent();
if(null!=intent.getStringExtra("data")){
    //处理数据
}

方式三、系统包管理器的方式

应用A中:

Intent intent3=getPackageManager().getLaunchIntentForPackage("应用B的包名");
intent3.putExtra("data","传递的数据");
startActivity(intent3);

应用B的启动Activity:

Intent intent=this.getIntent();
if(null!=intent.getStringExtra("data")){
     //处理数据
}

方式三最简单,但是它只能进入启动Activity。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值