在我的主活动中,我有以下内容:
然而,我的“设置”活动刚开始时,“称为”的提示就已经出现了,而不是在活动完成时才出现。我已经花了很长时间来解决这个问题,感谢任何帮助。谢谢。
Intent settings_intent = new Intent(this, SettingsActivity.class);
settings_intent.putExtra("SomeID", some_int);
startActivityForResult(settings_intent, 1);
然后,在我的SettingsActivity中,我有:
@Override
public void onBackPressed() {
super.onBackPressed();
// pass back settings:
Intent data = new Intent();
data.putExtra("SomeThing", some_number);
setResult(200, data);
finish();
}
最后,我在我的主活动中重写了以下内容:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
makeToast("called");
super.onActivityResult(requestCode, resultCode, data);
}
然而,我的“设置”活动刚开始时,“称为”的提示就已经出现了,而不是在活动完成时才出现。我已经花了很长时间来解决这个问题,感谢任何帮助。谢谢。
android:launchMode="singleTask"
,令人惊讶的是它起作用了。但现在阅读文档,我担心它是否适用于其他设备。 - WSBTsingleInstance
也可能会导致这种情况,因为它几乎与singleTask
相同。但说实话,我不知道为什么singleTask
可以这样工作,所以我不能告诉你在其他设备上是否也是这样。 - user658042