5

問題の説明:

私のアプリにはメインアクティビティと設定アクティビティがあります。設定アクティビティを閉じるたびに、メイン アクティビティが再作成されます。

メイン アクティビティは、アクション バーのホーム ボタンと戻るボタン (ハードウェアまたはポップアップ バー) の 2 つの場所で、finish() によって閉じる (アプリを終了する) ことができます。

ホームボタンは問題なく機能し、戻るボタンは最初は機能しますが、ユーザーが設定アクティビティにいて、それを閉じてメインアクティビティに戻った場合、onBackPressed() 関数は呼び出されなくなりました。

レクリエーションを削除すると、ホーム ボタンと同じように、戻るボタンが正常に機能します。

recreate() が [戻る] ボタンを台無しにする理由を誰かが知っている場合はどうなりますか?

ありがとう。

関連するコードの一部:

主な活動:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {

        // Open Settings Activity
        case R.id.menuSettings:

            Intent intent = new Intent(this, SettingsActivity.class);
            startActivityForResult(intent, REQUEST_SETTINGS);

            return true;

        // Close the App
        case android.R.id.home:

            finish();

            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode != RESULT_OK) {

        return;
    }

    switch (requestCode) {

        case REQUEST_SETTINGS:

            // Recreate activity
            recreate();

            break;
    }
}

// Close App on Back Button Click
@Override
public void onBackPressed() {
    super.onBackPressed();

    finish();
}

}

4

3 に答える 3