从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 将如何影响程序?请指教,谢谢
不,这不是强制性的。 startActivity
和 startActivityForResult
的使用几乎相同,除了你 'can' 从 Activity B(new activity) 得到一些数据,如果你使用 startActivityForResult
与 onActivityResult
.
如果您使用 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
我有两个 activities
,我希望它们能够使用相同但不同的数据相互来回交互 views/layout
,我可以执行相同的操作在这两项活动中运作。
有人建议我使用 startActivity
而不是 startActivityForResult
因为返回调用 activity (Activity A) 是可选的,但我不认为就是这样。
我看了又看,但一切都建议我使用 startActivityForResult
。如果可能,那么不返回调用 activity 将如何影响程序?请指教,谢谢
不,这不是强制性的。 startActivity
和 startActivityForResult
的使用几乎相同,除了你 'can' 从 Activity B(new activity) 得到一些数据,如果你使用 startActivityForResult
与 onActivityResult
.
如果您使用 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