您的位置:首页 > 移动开发 > Android开发

android6.0报错 :KeyEvent: ACTION_UP but key was not down.解决之旅

2015-12-02 13:01 1966 查看
最近在一个项目中发现一个很棘手的问题,自定义软键盘控件,然后在android4.4 系统上运行非常ok,可是在最新发布的android6.0上就出现了如下的报错log:

D/InputEventConsistencyVerifier(1212): KeyEvent: ACTION_UP but key was not down.

进过多日的对比和追踪,终于发现了这个问题的根源,在OnTouchListener监听事件中,如果是多层次的监听,也就是最外层的布局设置了onTouch的监听事件,里面的布局也要设置onTouch监听事件,如果是想把onTouchEvent从上传递到最里面一层布局上做处理,那么就需要注意onTouch方法的返回值了,如果不需要继续往下传递onTouchEvent,那么就结束,返回一个true,如果需要进一步传递该动作就返回一个false。

针对android4.4系统,应该是在重写onTouch方法的时候,系统会默认在最下一层布局控件中自动返回true,所以不会存在上面的报错信息。到了android6.0估计系统默认就是false了,那就将onTouchEvent事件继续下传。由于一直没有返回这个事件已经结束的状态,所以MotionEvent事件一直处于ACTION_DOWN的状态,无法进一步下去操作。写了这么多其实就是多android API的了解还是非常不够,今后多加学习,避免这些低级错误。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: