0

我通过扩展“SurfaceView”创建了自己的自定义视图类。然后我重写 onTouchEvent 方法。两个问题。

(1)即使我处理了我需要的一切(我认为),我是否应该同时调用 super.onTouchEvent ?(2) 是否应该在新线程中完成工作?我收到很多跳过的 32 帧!应用程序可能在其主线程上做的工作过多 onTouchEvent 是从 UI 线程调用的吗?

我的观点只不过是一个操纵杆,在触摸事件中,我只需用 3 或 4 行代码移动对象的坐标。

4

1 回答 1

4
  1. 这里不需要调用 superOnTouchEvnet。但请记住,如果返回 false,它将不起作用。因此,如果要处理事件,最好在完成任务后返回 super.OnTouchEvent。如果对于某些情况或某些输入,您不想处理触摸事件,那么不使用 super 方法就返回 false。

  2. 是的。此方法由主 UI 线程处理。所以对于长任务使用任何安全的方法,比如使用不同的线程、asynctask 或 handler.post。

于 2012-11-20T04:25:07.040 回答