Android A应用跳转B应用及传参

A应用(发起)
备注:returnCode参数为回调获取参数时标记

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("myapp://page?param=value"));
        startActivityForResult(intent,returnCode);

    /**
     * 接收B应用返回的数据
     * @param requestCode
     * @param resultCode
     * @param data
     */
@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == returnCode && resultCode == RESULT_OK) {
            if (data != null) {
                String money = data.getStringExtra("money");
                // 使用返回的参数值进行相应操作
                Log.d(TAG, "onActivityResult: "+money);
            }
        }
    }

B应用
AndroidManifest中被跳转页配置如示例TestActivity

    <activity android:name=".TestActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="myapp" android:host="page" />
            </intent-filter>
        </activity>

TestActivity 页面onCreate参数接收

        Intent intent = getIntent();
        Uri uri = intent.getData();
       if(uri!=null){
            String paramValue = uri.getQuery();
            Log.d("TestActivity", "onCreate: "+paramValue);
        }

返回A应用附带参数

            Intent returnIntent = new Intent();
            returnIntent.putExtra("money", new Random().nextInt(10000)); // 附带参数
            setResult(RESULT_OK, returnIntent); // 设置返回结果
            finish(); // 结束当前活动,返回到前一个活动
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。