manifest中
调用方:
注册接收返回数据监听:
ActivityResultLauncher<Intent> arl;
arl = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
int resultCode = result.getResultCode();
Intent intent = result.getData();
Bundle bundle = intent == null ? null : intent.getExtras();
if (bundle == null) {
return;
}
if (resultCode == 1) {
String data = (String) bundle.get("data");
Toast.makeText(LoginActivity.this, "显示" + data, Toast.LENGTH_SHORT).show();
Log.i("TAG", "数据:" + data);
}
});
调用其他app:
findViewById(R.id.jumpD).setOnClickListener(v -> {
Intent intent = new Intent();
Bundle b = new Bundle();
b.putString("from", "c");
intent.putExtras(b);
ComponentName componentName = new ComponentName("com.xx.demod", "com.xx.demod.ui.login.LoginActivity");// 参数pkg与cls
intent.setComponent(componentName);
arl.launch(intent);
});
被调用方:
manifest中声明类
android:exported="true"
接收数据:
Intent intent = getIntent();
Bundle b = intent == null ? null : intent.getExtras();
String data = b == null ? "" : (String) b.get("from");
Toast.makeText(this, "from" + data, Toast.LENGTH_SHORT).show();
回传数据:
findViewById(R.id.demo).setOnClickListener(v -> {
Intent ri = getIntent();
Bundle bb = new Bundle();
bb.putString("data", "ss");
ri.putExtras(bb);
setResult(1, ri);
finish();
});