6

結果のアクティビティを呼び出します。

private static final int CODE_LOGIN = 0;
private static final int CODE_DETAILS = 1;

private void callDetailsActivity() {
    Intent switchToDetailsActivity = new Intent(getApplicationContext(), Details.class);
    switchToDetailsActivity.putExtra(TAG_ID, details.get(TAG_ID));
    startActivityForResult(switchToDetailsActivity, CODE_DETAILS);
}

Details.classで、前のアクティビティに戻るために呼び出します。

@Override
public void onBackPressed() {
    setResult(RESULT_OK);
    super.onBackPressed();
}

そして、私のonActivityResult()

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == CODE_LOGIN) {
                // This is for my other Activity, where the "return" works
        }
    }
    updateOffers();
}

しかし、以前のクラスに戻る前に、アプリケーションはエラー ログなしで閉じられます。ホームボタンを押して以前のアプリケーションに移動すると、アプリケーションに移動して以前のアクティビティに戻ることができますが、それは間違いなく本来の動作方法ではありません。

また、 を変更しないようにしたりonBackPressed()、単純に に書き込もうとしたりfinish()しましonBackPressed()たが、何も機能しませんでした。

設定していませんandroid:noHistory="true"

私の他のアクティビティ(まったく同じコードを使用)では、完全に機能します(CODE_LOGIN)。

誰か助けてくれませんか?

4

3 に答える 3

2

私は自分の間違いを見つけました。コードのどこかで誤って finish() を呼び出したため、グローバルで finish() を 2 回呼び出したため、アプリケーションが閉じてしまいました。

super.onBackPressed() を使用するためのアドバイスとアドバイスをありがとう

于 2013-10-18T16:14:03.057 に答える