我正在活动A中创建一个intent,然后使用Android中ListView的setOnItemClickListener中的startActivityForResult启动活动B.
Intent detailsIntent = new Intent(MyTeamDetailsActivity.this, MatchMediaActivity.class);
detailsIntent.putExtra("data", data);
detailsIntent.putExtra("hasSmoovz",mSmoovz);
detailsIntent.putExtra("uitslagen", true);
startActivityForResult(detailsIntent, MATCH_MEDIA_REQUEST);
问题是,在启动活动时,它会立即进入活动A的onActivityResult部分,但是resultCode = 0;然后,在完成之后,它会加载活动B的onCreate等。
以下代码是我的onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MATCH_MEDIA_REQUEST) {
if (resultCode == RESULT_OK) {
refreshData();
}
}
}
这是我完成活动B并给它一个结果代码的简单代码:
@Override
public void onBackPressed() {
setResult(RESULT_OK);
finish();
}
知道为什么会这样吗?我以前从未见过这个。 非常感谢。
答案 0 :(得分:1)
这是因为我在清单中将我的活动作为singleTask:https://developer.android.com/guide/topics/manifest/activity-element.html#lmode
(感谢@SteveBarret)