问题场景:
三个 Activity,A startActivityForResult 启动 B,B startActivity 启动 C 然后 finish(),C setResult finish() 后,A 无法获得返回的 result.
如下图:
解决方法:
B 启动 C 时,添加Intent.FLAG_ACTIVITY_FORWARD_RESULT
Flag.
这样当 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
同时使用。