是否必须返回到从活动 B 调用 startActivityForResult 的活动 A?



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

建议我使用startActivity而不是startActivityForResult因为返回到调用活动(活动 A(是可选的,但我认为这不是要走的路。

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

不,这不是强制性的。startActivitystartActivityForResult的使用几乎相同,只是如果您将startActivityForResultonActivityResult一起使用,则"可以"从活动B(新活动(中获取一些数据。

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

当您想要从现有活动的onActivityResult((方法中的第二个活动的结果中获得一些更新的数据时,startActivityForResult((很有用。如果你不需要结果,那么你可以简单地使用startActivity((。如果您不希望从第二个活动进行任何更新,则可以简单地调用startActivity((,或者如果您使用startActivityForResult((,则可以忽略onActivityResult((中第二个活动的意图数据。你可以像这样实现startActivityForResult((

第一活动.java

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

第二活动.java

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

第一活动.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

相关内容

  • 没有找到相关文章

最新更新