我正在使用GLSurfaceview和OpenGL ES 1.1开发游戏。在我的游戏中,游戏区域(使用GLSurfaceview创建)在游戏启动时放大(放大动画)。
问题: 我发现在Android Lollipop(5.0版)上启动游戏后,游戏有时会在缩小状态下冻结。在我杀死游戏之前,放大动画无法启动,游戏仍处于缩小状态。 这款游戏适用于从1.6(Donut)到4.4.4(Kitkat)的所有Android版本。
在我的代码中,我在游戏中运行了两个线程。
在我的代码中,上面的线程在游戏启动时启动。游戏逻辑线程不断更新动画变量的值。 Game Render线程使用此变量来显示放大动画。
启动游戏逻辑线程的代码:
mHandler.removeCallbacks(GameLogic);
mHandler.postAtFrontOfQueue(GameLogic);
这里,mHandler是一个Handler类对象。
从我的代码中,我了解到当游戏逻辑线程停止时可能会发生此问题。但我无法弄清楚游戏逻辑线程如何在Android Lollipop上停止,因为我没有通过代码暂停或恢复游戏逻辑线程。 提前谢谢。
编辑: 动画代码
Game Logic() {
if (anim_counter == 144) {
stop_animation();
}
anim_counter += 2; // update animation counter
}