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生命周期失效问题