java 监听Back键,onBackPressed()和onkeyDown()都无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 监听Back键,onBackPressed()和onkeyDown()都无效相关的知识,希望对你有一定的参考价值。
情况:
1、弹出软键盘的情况下,back会先取消软键盘,因此context是收不到监听的
解决:给对应的edittext(软键盘对应)设置监听
2、dialog或者相关的弹窗
解决:给对应的dialog(软键盘对应)设置监听
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
mContext.onBackPressed();
//依据api等级2.0之后的都可以用第一种
//或者用这一种 ((Activity)this.getContext()).onKeyDown(KeyEvent.KEYCODE_BACK, event);
return true;
}
return false;
}
});
以上两种原因都是因为对应的context的焦点被别人占用了,所以监听不到
以上是关于java 监听Back键,onBackPressed()和onkeyDown()都无效的主要内容,如果未能解决你的问题,请参考以下文章
Android Back Home键监听
onBackPressed() 监听返回按键事件
react native 之 Android物理返回键
android检测返回键onBackPressed和onKeyDown区别
onBackPressed() 使用
记录:uni-app 监听浏览器返回事件,onBackPress生命周期失效问题