我的surfaceView正在一个线程中运行,但有时候它是动画的 大部分时间它只需要重新绘制一次并留下以响应某些用户交互,但因为它在线程onDraw中的运行不断被调用...不断的重新绘制正在减慢它并使我的手机变暖:)
我想使用invalidate(Rect)但是在线程控制onDraw时无法看到如何执行此操作...
不断重绘的一切都不是我应该去的方式,任何帮助都会受到极大的关注......
答案 0 :(得分:0)
在您的帖子中,您可以在致电wait()
后致电onDraw()
。这将强制线程进入睡眠状态,直到提示继续工作。一旦用户进行了交互并且您想要恢复动画,请在线程上调用notify()
将其唤醒并重新绘制。
如果这并不能完全解决您的问题,请考虑将wait()
置于if语句中,以便只有在满足某些条件后才会发生。