android6.0报错 :KeyEvent: ACTION_UP but key was not down.解决之旅
2015-12-02 13:01
1966 查看
最近在一个项目中发现一个很棘手的问题,自定义软键盘控件,然后在android4.4 系统上运行非常ok,可是在最新发布的android6.0上就出现了如下的报错log:
针对android4.4系统,应该是在重写onTouch方法的时候,系统会默认在最下一层布局控件中自动返回true,所以不会存在上面的报错信息。到了android6.0估计系统默认就是false了,那就将onTouchEvent事件继续下传。由于一直没有返回这个事件已经结束的状态,所以MotionEvent事件一直处于ACTION_DOWN的状态,无法进一步下去操作。写了这么多其实就是多android API的了解还是非常不够,今后多加学习,避免这些低级错误。
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的了解还是非常不够,今后多加学习,避免这些低级错误。
相关文章推荐
- 安卓简记-禁止屏幕旋转&屏幕旋转不刷新
- android JetPlayer
- Android Studio 使用之一安装设置
- android 显示flash视频播放器
- Android注释规范
- android Audio Capture
- Android使用贝塞尔线高仿QQ聊天消息气泡的拖拽效果
- android Supported Media Formats
- Android异步加载(三)
- android 并发编程 线程间通信3种
- android ExoPlayer(可扩展的播放器)-GitHub开源项目(解决方案)
- 使ionic应用更加贴近原生
- Android-回调机制
- android EditText监听和长度监测事件
- Android 腾讯优图开发问题总结
- Android动画_基本
- 一张图让你了解安卓事件处理流程的走向
- android事件分发、拦截、处理(未完)
- android 程序防止被360或者系统终止
- Android Studio Unable to execute DX