Я хочу скрыть свое приложение, если нажать кнопку BACK.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
{
this.moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
Но мое приложение близко. Что я делаю неправильно?
Вы должны переопределить метод onBackPressed()
класса Activity.
Вот пример кода:
@Override
public void onBackPressed() {
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}
Также вы должны переопределить метод onBackPressed()
в дочерних действиях:
@Override
public void onBackPressed() {
this.getParent().onBackPressed();
}
Сохраняя активность сзади, вы имеете в виду, что кнопка "Назад" должна действовать как кнопка "Домой". Если это так, попробуйте это,
@Override
public void onBackPressed() {
Intent backtoHome = new Intent(Intent.ACTION_MAIN);
backtoHome.addCategory(Intent.CATEGORY_HOME);
backtoHome.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(backtoHome);
}
Добавив это в свою деятельность, вы увидите, что ваше приложение реагирует на событие кнопки "Главная кнопка", и ваше приложение будет скрываться, но не закрываться.
вы можете попробовать следующее:
Intent intent2 = new Intent(getApplicationContext(), MainActivity.class);
intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent2.putExtra("EXIT", true);
startActivity(intent2);
И в вашу MainActivity:
Напишите это в onCreate()
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Попробуйте это. Он отправит вас на HomeScreen.
Я бы рекомендовал вам пересмотреть. Если бы каждому приложению разрешалось использовать кнопки, как бы они ни пожелали, было бы невозможно поддерживать определенную последовательность в работе пользователя.
Физические кнопки должны работать одинаково для всех приложений. Профессор однажды сказал мне: "Ваше приложение ничего особенного". Не в том смысле, что это не здорово, просто чтобы оно оптимально соответствовало определенным стандартам, чтобы не путать пользователей.