問題の説明:onBackPressedはrecreate()の後に呼び出しません
私のアプリケーションは主にアクティビティとアクティビティを設定しています。設定アクティビティを終了するたびに、メインアクティビティが再作成されます。
メインアクティビティは、アクションバーとバックボタン(ハードウェアまたはポップアップバー)のホームボタンの2つの場所でfinish()を使用して閉じることができます(App exit)。
ホームボタンは問題なく動作しますが、[戻る]ボタンは開始時に機能しますが、ユーザが[設定アクティビティ]にあってそれを閉じてメインアクティビティに戻ると、onBackPressed()
レクリエーションを削除すると、[戻る]ボタンは[ホーム]ボタンと同じように正常に機能します。
誰かが理由を知っているなら、戻るボタンを使いこなすのはなぜですか?
ありがとうございました。関連するコードの
パーツ:
主な活動:
@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();
}
}
ランチャーモードについては、https://developer.android.com/guide/topics/manifest/activity-element.html#lmode – Raghunandan
をお読みください。再作成されたコードは何ですか? –
私もこの問題があります。しかし、すべてのデバイスではありません!すべてのエミュレータ(私がテストした)では正しく動作します。物理的なデバイスではありません。私は何が起こっているのか理解できません。 –