我正在为我的安卓游戏使用 Libgdx。游戏运行良好,但如果没有用户交互,它会在运行时自动暂停。如何避免游戏暂停?
我的主类实现AndroidApplication
,我的游戏类实现ApplicationListener
。
虽然 JRowan 的回答对一般的 Android 应用程序很好,并且可以与 Libgdx 一起使用,但您也可以使用 Libgdx 支持来获取唤醒锁。见useWakelock
中AndroidApplicationConfiguration
。Libgdx 将为您跟踪唤醒锁。不过,您仍然需要清单中的适当权限。
具体来说,在您的扩展类中AndroidApplication
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useWakelock = true;
initialize(new MyGdxGame(), cfg);
}
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "GLGame");
wakeLock.acquire();
你必须把权限唤醒锁放在你的清单中
当你完成唤醒锁时释放它
wakeLock.release();
或者
更安全的方法是对活动中的某些视图使用 setKeepScreenOn() 或 android:keepScreenOn。您不需要 WAKE_LOCK 权限,并且您不能因为未能释放它而轻易搞砸它。一旦 keep-screen-on 视图不再位于前台,设备行为就会恢复正常。
更好更简单的方法,无需担心释放任何东西
只需将此代码复制到 AndroidLauncher.java 文件中
@Override protected void createWakeLock(boolean use) { use=true; super.createWakeLock(使用); }
有关更多信息,请参见在此处输入链接描述