安卓奇葩问题之:返回按键监听,使Dialog不消失

Posted 夜空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓奇葩问题之:返回按键监听,使Dialog不消失相关的知识,希望对你有一定的参考价值。

本文出处:http://bbs.9ria.com/thread-204406-1-1.html

在做自动更新的时候,弹出Dialog提示,要求是只能点击更新或者取消更新时Dialog才会消失。但是在这个时候用户可能点击返回键,怎么让Dialog不消失呢?

首先想到重写Activity的onKeyDown,后来发现没有什么卵用。

百度了一下,找到原因了。不应该截取activity的 onkeydown事件,而应该截取dialog的key响应事件,当dialog在前台显示的时候,keylistener首先会派发到dialog里面,在Dialog里监听。

OnKeyListener keylistener = new DialogInterface.OnKeyListener(){
        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
            if (keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0)
            {
             return true;
            }
            else
            {
             return false;
            }
        }
    } ;

然后为Dialog设置监听

dialog.setOnKeyListener(keylistener)

 

以上是关于安卓奇葩问题之:返回按键监听,使Dialog不消失的主要内容,如果未能解决你的问题,请参考以下文章

安卓奇葩问题之:运行OK,打包安装崩溃(原因是:代码不规范导致编译出错)

Android dialog实现监听生命周期

H5监听手机返回按键写法(基于H5+)

js怎么监听安卓返回键

onBackPressed() 监听返回按键事件

Android番外篇 Dialog点击返回键及屏幕不消失 Dialog系列