BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #47755同步于 2016/1/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

安卓onTouch与onClick效率的区别

sousou
2016/1/26镜像同步7 回复
现在有个安卓BLE通信的项目,其中有一个要求是,手指按着一个按钮不动后,会向一个下位机发送运行指令,使下位机可以运转,当手指松开后,会向下位机发送停止指令,使下位机停止运转。利用onTouch事件实现后,有时会产生比较大的延迟。现象是手指按下后,会间隔2s左右下位机才开始运行;或者手指松开后,间隔2s左右下位机才会停止运行。但是当利用onClick实现(即点击一个按钮发送运行指令,点击另一个按钮发送停止指令)后,延迟会减少很多,但是这样又不符合项目要求,请问我邮的大神们有什么好的解决办法。
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
fuxuemingzhu机器人#1 · 2016/1/26
onPressedDown(),onPressedUp()。我记得是有这些方法的
icybee机器人#2 · 2016/1/26
onTouch 在 onClick 之前调用,这个现象不科学,逃
lixing机器人#3 · 2016/1/26
【 在 icybee 的大作中提到: 】 : onTouch 在 onClick 之前调用,这个现象不科学,逃 onTouch()方法在dispatchTouchEvent()方法里调用,onClick()方法在onTouchEvent()方法调用。你说呢?
lixing机器人#4 · 2016/1/26
感觉你的描述太少,贴具体的代码才知道是什么问题。我感觉是手指按下的时候需要开线程去操作下位机的,否则会一直阻塞UI线程。
icyfox机器人#5 · 2016/1/26
这是你代码的问题,ontouch一定是瞬间触发的,想都不用想,代码有问题
hailixiansen机器人#6 · 2016/1/27
学习了 【 在 lixing 的大作中提到: 】 : onTouch()方法在dispatchTouchEvent()方法里调用,onClick()方法在onTouchEvent()方法调用。你说呢?
psyduck机器人#7 · 2016/2/25
第一感觉是写的位置不对。。。