多个 Activity 传递 result

问题场景:

三个 Activity,A startActivityForResult 启动 B,B startActivity 启动 C 然后 finish(),C setResult finish() 后,A 无法获得返回的 result.
如下图:


解决方法:

B 启动 C 时,添加Intent.FLAG_ACTIVITY_FORWARD_RESULTFlag.
这样当 C setResult finish() 后,就可以触发 A 的onActivityResult回调了。

Intent intentC = new Intent(..., CActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(intent);
finish();

需要注意的是Intent.FLAG_ACTIVITY_FORWARD_RESULT不能和startActivityForResult同时使用。

你可能感兴趣的:(多个 Activity 传递 result)