gpt4 book ai didi

java - 暂停和恢复线程绘制到 SurfaceView

转载 作者:搜寻专家 更新时间:2023-11-01 09:18:37 25 4
gpt4 key购买 nike

我正在为 Android ( http://androidchess.appspot.com ) 开发一个国际象棋游戏,使用 SurfaceView 作为棋盘。我有一个绘图 Thread,它在一个循环中绘制棋盘。问题是当没有 Activity 动画时(这是超过 90% 的时间),浪费 CPU 和电池来绘图是没有意义的。我应该如何解决这个问题?也许以某种方式暂停和恢复绘图 Thread

最佳答案

尝试这样的事情(你可以通过尝试 this code 来测试它):

final Object monitor = new Object();

class Drawing implements Runnable
{
@override
void run()
{
while(true)
{

synchronized(monitor)
{
monitor.wait();
}

// draw
}
}
}

public static void main(String[] args) {

// start your thread
while(true)
{
if( needRefresh )
{
synchronized(monitor)
{
monitor.notify();
}
}
}
}

我建议使用 Semaphore如果你想发出一次信号然后继续绘制(即不要阻塞)直到信号关闭。

关于java - 暂停和恢复线程绘制到 SurfaceView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com