我有两个activities
我希望他们能够使用相同的数据来回互动,但使用不同的views/layout
,我可以执行相同的操作这两项活动。
我被建议使用startActivity
而不是startActivityForResult
,因为回到调用活动(活动A)是可选的,但我认为不是这样的。
我看了看,但一切都建议我使用startActivityForResult
。如果有可能,那么如何不回到调用活动会影响程序?请指教,谢谢。
答案 0 :(得分:1)
不,不是强制性的。 startActivity
和startActivityForResult
的使用几乎相同,只是如果您将startActivityForResult
与onActivityResult
一起使用,则可以从活动B(新活动)中获取一些数据。
如果使用sartActivityForResult
if,则可以放心地忽略结果
你真的不需要一些数据。
答案 1 :(得分:0)
startActivityForResult()在现有活动的 onActivityResult()方法中需要来自第二个活动结果的更新数据时非常有用。如果您不需要结果,那么您只需使用 startActivity()即可。如果您不希望从第二个活动进行任何更新,只需调用 startactivity(),或者如果您使用 startActivityForResult(),则可以忽略来自第二个活动的意图数据的 onActivityResult()即可。您可以像这样实现 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