Android: двойное нажатие кнопки «Домой» в качестве действия по умолчанию

В настоящее время я реализую приложение для Android. Когда я нажимаю кнопки домой/обзор, приложение по умолчанию приостанавливается (показывая обзор приложений для второго). Я заметил, что большинство приложений в последних версиях Android дают возможность двойного нажатия на кнопки «Домой» и «Обзор». В частности, при нажатии кнопок «Домой»/«Обзора» появляется всплывающее сообщение. Нажмите еще раз, чтобы выйти. Это действие по умолчанию для кнопок «Домой/Обзор». Если да, то как я могу включить его в своем приложении? Если нет, могу ли я переопределить поведение по умолчанию? В различных сообщениях упоминается, что нет возможности заменить действия кнопки «Домой»/«Обзора», поскольку они являются системными по умолчанию (поэтому нет методов обработки, таких как onBackPressed для кнопки «Назад»).


person Alexandros Mavrommatis    schedule 12.12.2020    source источник
comment
Нет, я имею в виду кнопки «Домой» и «Обзор» (поэтому нет методов обработки, таких как onBackPressed для кнопки «Назад»). Большинство полноэкранных приложений, которые я установил на свой телефон, могут отображать всплывающее сообщение при нажатии кнопки «Домой» или «Обзор».   -  person Alexandros Mavrommatis    schedule 12.12.2020
comment
Кроме того, все эти приложения каким-то образом получают всплывающее сообщение по умолчанию для выхода, которое зависит от системного языка телефона. Может ли кто-нибудь найти системные сообщения по умолчанию через приложение?   -  person Alexandros Mavrommatis    schedule 12.12.2020
comment
Они могут показывать тост внутри на паузе или при возобновлении. Что касается языка, то это строка.   -  person Prince Ali    schedule 12.12.2020
comment
@PrinceAli, что касается языка, вы говорите, что это строка. Вы имеете в виду системную строку по умолчанию, расположенную где-то, или строку, определенную в коде, или как значение в strings.xml. Я почти уверен, что это не второй, так как я тестировал различные приложения, реализованные на разных языках, и они показывают тост-сообщение о выходе на системном языке. Например, я переключил свой язык телефона на французский, и всплывающее сообщение о выходе отображалось на французском языке для приложений, реализованных на английском, а также на других языках (но не на французском).   -  person Alexandros Mavrommatis    schedule 12.12.2020
comment
Как вы можете сказать, что французский перевод не реализован в strings.xml?   -  person Prince Ali    schedule 12.12.2020
comment
@PrinceAli Потому что я также тестировал греческое приложение, реализованное только на греческом языке. Не может быть, чтобы разработчики создали это приложение на греческом языке, создали кучу других файлов strings.xml только для всплывающего сообщения о выходе. Я также протестировал вышеупомянутое приложение для китайского системного языка, и оно сработало. Пожалуйста, не говорите мне, что греческие разработчики создали файл strings.xml на китайском языке только для всплывающего сообщения о выходе: P   -  person Alexandros Mavrommatis    schedule 12.12.2020
comment
В этом случае мог использоваться android.R.string.some_default_string. Но Идк!   -  person Prince Ali    schedule 12.12.2020


Ответы (1)


В вашей MainActivity внутри методов onPause/onResume.

@Override
    protected void onPause() {
        showToast("You paused the activity");
        super.onPause();
    }
    
    @Override
    protected void onResume() {
        showToast("You resumed the activity");
        super.onResume();
    }
    
    
    private void showToast(String str) {
        Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
    }

Предыдущие методы будут отображать всплывающее сообщение о том, что вы приостановили действие, когда нажимаете кнопки «Назад», «Домой» или «Обзор» (onPause). Точно так же, если вы повторно войдете в приложение, оно отобразит, что вы возобновили активность.

person Prince Ali    schedule 12.12.2020
comment
Как вы и сказали, это будет отображать тост, когда приложение будет приостановлено, а не после нажатия кнопок «Домой» или «Обзор». Мне нужна функциональность, которая показывает тост после нажатия кнопок. В случае, если приложение приостановлено по другой причине (например, вы покинули приложение из-за звонка), я не хочу, чтобы отображалось всплывающее сообщение. Я определенно уверен, что это возможно, поскольку многие приложения, установленные в моем телефоне, поддерживают эту функцию. - person Alexandros Mavrommatis; 12.12.2020
comment
Имеет смысл, но я не нашел ничего, что позволяло бы приложению использовать кнопку «Домой». Ну, по крайней мере, пока. - person Prince Ali; 12.12.2020