Обнаружение нажатия кнопки «Домой» в Android

Это уже какое-то время сводит меня с ума.

Есть ли способ надежно определить, была ли нажата кнопка «Домой» в приложении для Android?

Если это не удается, существует ли надежный способ узнать, что привело к переходу действия в onPause? То есть можем ли мы определить, было ли это вызвано запуском нового действия или нажатием кнопки возврата / возврата.

Одно из предложений, которое я видел, - переопределить onPause () и вызвать isFinishing (), но это вернет false при нажатии кнопки «Домой», как если бы начиналось новое действие, поэтому при этом не удается провести различие между ними.

Любая помощь очень ценится.

** Обновление **: Спасибо @ android-hungry за эту ссылку: http://nisha113a5.blogspot.com/

Преодоление следующего метода:

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);           
}

Тогда следующее событие БУДЕТ запускаться при нажатии кнопки «Домой»:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {     

    if(keyCode == KeyEvent.KEYCODE_HOME)
    {
       //The Code Want to Perform. 
    }
});

I Я не уверен, есть ли у этой строки какие-либо побочные эффекты:

this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);   

Таким образом, может показаться, что вопреки распространенному мнению, на самом деле вы можете прослушивать клавишу Home. К сожалению, вы можете вернуть false, и домашний ключ ничего не сделает.

Обновление : Как и ожидалось, здесь есть некоторые побочные эффекты - кажется, что встроенные видео и карты Google не отображаются в этом режиме.

Обновление : Предположительно, этот хак больше не работает начиная с Android 4.0

87
задан kapa 8 July 2014 в 12:44
поделиться

1 ответ

enter image description here клавиша Home Android, обработанная слоем платформы, Вы не можете способный обработать это на уровне прикладного уровня. Поскольку действие кнопки "Домой" уже определяется в ниже уровня. Но Если Вы разрабатываете свой пользовательский ROM, тогда Это могло бы быть возможно. Google ограничил функции переопределения КНОПКИ "ДОМОЙ" из-за соображений безопасности.

0
ответ дан 24 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: