1

アクティビティ A でインテントを作成してから、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();
    }

なぜこれが起こっているのでしょうか?これは今まで見たことがありません。よろしくお願いします。

4

1 に答える 1

1

これは、マニフェストに自分のアクティビティが singleTask として含まれていたためです: https://developer.android.com/guide/topics/manifest/activity-element.html#lmode

(@SteveBarretに感謝)

于 2013-08-19T14:44:22.957 に答える