从Android中的ListView的setOnItemClickListener调用startActivityForResult

时间:2013-08-19 14:19:34

标签: android android-intent android-activity onactivityresult

我正在活动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();
    }

知道为什么会这样吗?我以前从未见过这个。 非常感谢。

1 个答案:

答案 0 :(得分:1)

这是因为我在清单中将我的活动作为singleTask:https://developer.android.com/guide/topics/manifest/activity-element.html#lmode

(感谢@SteveBarret)