我有三个活动A,B和C。
A 以 BstartActivityForResult(getIntent(), ACTIVITY_B);开头,B 以 开头startActivityForResult(getIntent(), ACTIVITY_C);C。ACTIVITY_B并且ACTIVITY_C是跨活动具有相同值的常数。
当 C 以 RESULT_OK 返回时,B 将使用以下代码重新启动:
if (resultCode == Activity.RESULT_OK){
finish();
startActivityForResult(getIntent(), ACTIVITY_B);
}
这工作正常。
当 B 必须返回时(单击菜单项),它会设置活动结果。
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()) {
case MENU_CONFIRM:
System.out.println("Setting Result to RESULT_OK");
setResult(Activity.RESULT_OK);
finish();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
但是我可以看到它setResult(Activity.RESULT_OK);被忽略了,因为它总是像RESULT_CANCEL在活动 A(onActivityResult)中一样被接收。我正在使用 2.3。
有什么线索吗?