【发布时间】:2018-08-28 16:24:08
【问题描述】:
我正在尝试使用 Android sdk 实现一个简单的游戏。该游戏使用自定义视图作为游戏区域。我尝试使用此代码 sn-p 为游戏添加一个简单的时钟。基本上它会在自定义游戏视图上以固定频率启动一个调用invalidate 的线程:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
class GameClock extends Thread {
CanvasView cv;
public GameClock(Activity ctx) {
cv = ctx.findViewById(R.id.MainGame);
}
public void run() {
while (! cv.initialized) {
try {
Thread.sleep(100);
} catch (InterruptedException ignored) {
}
}
// TODO: fix this
while (true) {
cv.invalidate();
try {
Thread.sleep(100);
} catch (InterruptedException ignored) {
}
}
}
}
new GameClock(this).run();
}
但是当我启动应用程序时,它只是挂起并且不显示任何内容。为什么会这样?如何修复它以按预期工作?
【问题讨论】:
标签: java android multithreading