Android onTouch多点触摸未接收所有触摸事件

Android onTouch多点触摸未接收所有触摸事件,android,surfaceview,multi-touch,Android,Surfaceview,Multi Touch,我正在使用AndroidSurfaceView并收听多点触控事件。我能够检测到多次触摸,但似乎没有触发操作指针向上触摸事件。这里是我的代码的一个快速剪辑 public class GameView extends SurfaceView implements Runnable { ... @Override public boolean onTouchEvent(MotionEvent motionEvent) { Log.i("pointer count

我正在使用Android
SurfaceView
并收听多点触控事件。我能够检测到多次触摸,但似乎没有触发
操作指针向上
触摸事件。这里是我的代码的一个快速剪辑

public class GameView extends SurfaceView implements Runnable {
    ...
    @Override
    public boolean onTouchEvent(MotionEvent motionEvent) {
        Log.i("pointer count", Integer.toString(motionEvent.getPointerCount()));
        return true;
    }
    ...
}
当我将两个手指放在屏幕上时,指针计数注销为2。如果我取下一根手指,指针计数log out不是1,而是保持在2。只有当我移动仍在屏幕上的手指时,它才会变为1。这是为什么?我该如何修理?谢谢

编辑

这个问题发生在我的One Plus One和我的朋友三星Galaxy Note 2上。有趣的是,当我把它放在我的三星Galaxy s4上时,问题并没有发生。

不要使用
getAction()==MotionEvent.ACTION\u POINTER\u UP
,因为该操作还将包含指针索引

getActionMasked()
将删除此信息,并可用于比较


请参见

只有当非主指针上升时,才会发生这种情况。@SimonMarquis,如果这是一个问题的话。对不,不是。但是,如果您正确地接收到移动事件,那么您必须做一些错误的事情。一点代码可能有助于发现错误添加日志语句中正在发生的操作,这可能会对您有所帮助(
actionToString(action)
getActionIndex
还将告诉您该操作用于哪个指针。谢谢@Arve我已经这样做了,它会注销
ACTION\u POINTER\u UP(1)
,不过如果我在之后使用
ACTION==MotionEvent.ACTION\u POINTER\u UP做日志,它会返回
false
。为什么?