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(); // 结束当前活动,返回到前一个活动