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