我有三个活动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。
有什么线索吗?