3

我正在为我的安卓游戏使用 Libgdx。游戏运行良好,但如果没有用户交互,它会在运行时自动暂停。如何避免游戏暂停?

我的主类实现AndroidApplication,我的游戏类实现ApplicationListener

4

3 回答 3

8

虽然 JRowan 的回答对一般的 Android 应用程序很好,并且可以与 Libgdx 一起使用,但您也可以使用 Libgdx 支持来获取唤醒锁。见useWakelockAndroidApplicationConfiguration。Libgdx 将为您跟踪唤醒锁。不过,您仍然需要清单中的适当权限。

具体来说,在您的扩展类中AndroidApplication

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    cfg.useWakelock = true;

    initialize(new MyGdxGame(), cfg);
}
于 2013-03-06T20:25:18.873 回答
1
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 视图不再位于前台,设备行为就会恢复正常。

于 2013-03-06T19:50:11.663 回答
0

更好更简单的方法,无需担心释放任何东西

只需将此代码复制到 AndroidLauncher.java 文件中

@Override protected void createWakeLock(boolean use) { use=true; super.createWakeLock(使用); }

有关更多信息,请参见在此处输入链接描述

于 2017-01-04T14:46:57.240 回答