Кнопка «Назад» -> эмулировать кнопку «Домой» [дубликаты]

1

Я хочу скрыть свое приложение, если нажать кнопку 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);
}

Но мое приложение близко. Что я делаю неправильно?

  • 2
    может быть поможет stackoverflow.com/questions/11240183/…
  • 0
    Вы имеете в виду крушение? Почему бы не позвонить Finish?
Показать ещё 2 комментария
Теги:

4 ответа

1
Лучший ответ

Вы должны переопределить метод 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();   
}
  • 0
    НЕТ! Это не работает для меня.
  • 0
    может быть, это не работает, потому что я использую TabActivity?
Показать ещё 2 комментария
0

Сохраняя активность сзади, вы имеете в виду, что кнопка "Назад" должна действовать как кнопка "Домой". Если это так, попробуйте это,

@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);
}

Добавив это в свою деятельность, вы увидите, что ваше приложение реагирует на событие кнопки "Главная кнопка", и ваше приложение будет скрываться, но не закрываться.

-1

вы можете попробовать следующее:

 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.

  • 0
    любой комментарий от downvoters ??
-2

Я бы рекомендовал вам пересмотреть. Если бы каждому приложению разрешалось использовать кнопки, как бы они ни пожелали, было бы невозможно поддерживать определенную последовательность в работе пользователя.

Физические кнопки должны работать одинаково для всех приложений. Профессор однажды сказал мне: "Ваше приложение ничего особенного". Не в том смысле, что это не здорово, просто чтобы оно оптимально соответствовало определенным стандартам, чтобы не путать пользователей.

  • 0
    Как вы пришли к такому выводу?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню