从Activity B 调用startActivityForResult 是否必须返回到Activity A?

Is it mandatory to go back to Activity A that calls startActivityForResult from Activity B?

我有两个 activities,我希望它们能够使用相同但不同的数据相互来回交互 views/layout,我可以执行相同的操作在这两项活动中运作。

有人建议我使用 startActivity 而不是 startActivityForResult 因为返回调用 activity (Activity A) 是可选的,但我不认为就是这样。

我看了又看,但一切都建议我使用 startActivityForResult。如果可能,那么不返回调用 activity 将如何影响程序?请指教,谢谢

不,这不是强制性的。 startActivitystartActivityForResult 的使用几乎相同,除了你 'can' 从 Activity B(new activity) 得到一些数据,如果你使用 startActivityForResultonActivityResult.

如果您使用 sartActivityForResult,您可以安全地忽略结果,如果 而且您真的不需要返回一些数据。

startActivityForResult() 当您想要从 onActivityResult() 中第二个 activity 的结果中获得一些更新数据时很有用现有方法activity。如果您不需要结果,那么您可以简单地使用 startActivity()。如果你不想从第二个 activity 开始任何更新,你可以简单地调用 startactivity() 或者如果你使用 startActivityForResult() 而不是您可以忽略 onActivityResult() 中第二个 activity 的意图数据。您可以像这样实施 startActivityForResult()

FirstActivity.java

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 111);

SecondActivity.java

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

FirstActivity.java

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 111) {
        if(resultCode == Activity.RESULT_OK){
          // got result from second activity
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}//onActivityResult