我创建了一个具有两种视图的屏幕:普通视图(接收向上/向下操作的按钮)和表面视图。SurfaceView 实现SurfaceHolder.Callback
并在另一个线程上运行并具有方法名称Tick()
。
当这些按钮收到操作时,它们将调用 method Tick()
,我希望此方法与 SurfaceView 运行相同的线程(用于同步目的),但不知道如何。
请给我一些想法来解决我的问题。
谢谢 :)
我创建了一个具有两种视图的屏幕:普通视图(接收向上/向下操作的按钮)和表面视图。SurfaceView 实现SurfaceHolder.Callback
并在另一个线程上运行并具有方法名称Tick()
。
当这些按钮收到操作时,它们将调用 method Tick()
,我希望此方法与 SurfaceView 运行相同的线程(用于同步目的),但不知道如何。
请给我一些想法来解决我的问题。
谢谢 :)
如果您真的想Tick()
在单独的线程中运行方法,该线程也在表面上绘制,您可以使用HandlerThread。因此,您将能够为其创建Handler并发布将在此线程中执行的可运行文件。但这也会对您的绘图程序施加一些限制——您需要防止它休眠或等待,因为线程需要处理消息队列。
但实际上我认为任何其他合理的同步方式都会比在同一线程上运行此方法更容易。