我正在编写简单的游戏。绘制/更新 go throw 实时模型,因此 CPU 始终处于高负载状态。线程看起来是这样的:
@Override
public void run() {
while (true) {
if (!mRun) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {};
} else {
Canvas c = null;
try {
c = mSurfaceHolder.lockCanvas(null);
synchronized (mSurfaceHolder) {
..update game objects..
if (canvas != null) {
..draw to canvas...
}
}
} finally {
if (c != null) {
mSurfaceHolder.unlockCanvasAndPost(c);
}
}
}
}
}
问题是工作,所以应用程序吃电池。在我的 Galaxy S2 上,它比在 PC USB 上同时充电更快。
我做错了什么,还是游戏没问题?