在发布我的产品后,我开始收到关于某些手机的某个屏幕不工作的投诉。经过大量研究并尝试解决此问题后,我发现由热量而不是压力控制的手机存在此问题。不幸的是,我只发现了问题所在。发生的事情是鼠标抬起和鼠标移动运动事件似乎是相同的运动。以下是我的代码的工作原理:
if(event.getAction()==MotionEvent.ACTION_MOVE)
{
lockdown=true;
}
else if(event.getAction()==MotionEvent.ACTION_UP && lockdown==false)
{
...
}
else if(event.getAction()==MotionEvent.ACTION_UP)
{
...
lockdown=false;
}
此代码适用于像我这样的压力触摸手机。它的设计是当触摸被拖动时某些东西不会起作用。我真的可以使用一些关于如何解决这个问题的见解。
在与我的测试人员来回交流了一个令人筋疲力尽的夜晚之后,这就是我想出的
// somewhere in the prior code a pressure sample is needed
public float dwnPressure
if(event.getAction()==MotionEvent.ACTION_DOWN)
{
dwnPressure=float(event.getPressure()*0.99)
}
回到我遇到问题的地方
if(event.getAction()==MotionEvent.ACTION_MOVE)
{
if(event.getPressure>dwnPressure)
{
lockdown=true;
}
}
else if(event.getAction()==MotionEvent.ACTION_UP && lockdown==false)
{
...
}
else if(event.getAction()==MotionEvent.ACTION_UP)
{
...
lockdown=false;
}
此更改适用于之前出现问题的一些手机。有些手机有显着的性能提升但有点挑剔。我认为 id 至少分享了我的辛勤工作,即使它不是 100%,因为这个问题没有像我以前在 stackoverflow 上那样快速回答
我是一名优秀的程序员,十分优秀!