我爲我的Android遊戲使用Libgdx。遊戲運行良好,但如果沒有來自用戶的交互,它會在運行時自動暫停。我怎樣才能避免遊戲暫停?在沒有用戶交互的Android遊戲中保持屏幕
我的主要類推動AndroidApplication
和我的遊戲類實現ApplicationListener
。
我爲我的Android遊戲使用Libgdx。遊戲運行良好,但如果沒有來自用戶的交互,它會在運行時自動暫停。我怎樣才能避免遊戲暫停?在沒有用戶交互的Android遊戲中保持屏幕
我的主要類推動AndroidApplication
和我的遊戲類實現ApplicationListener
。
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "GLGame");
wakeLock.acquire();
,你必須把許可激活鎖定在你的清單
,當你與激活鎖定完成釋放
wakeLock.release();
或
一個更安全的方法是使用setKeepScreenOn ()或android:keepScreenOn以查看活動中的某個視圖。您不需要WAKE_LOCK權限,並且無法釋放它,您不會輕易搞砸它。只要保持屏幕顯示的View不再處於前景中,設備行爲就會恢復正常。
儘管JRowan的答案適用於一般的Android應用程序,並且可以與Libgdx一起使用,但您也可以使用Libgdx支持來獲取喚醒鎖。請參閱AndroidApplicationConfiguration
中的useWakelock
。 Libgdx將會跟蹤你的喚醒。不過,您仍然需要清單中的適當權限。
具體來說,在你的類,它擴展AndroidApplication
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useWakelock = true;
initialize(new MyGdxGame(), cfg);
}
這是'用useWakelock'加一點L,謝謝:) – Loknar 2015-01-10 16:03:58
謝謝@Loknar,修復它。 – 2015-01-10 19:19:45
更好,更簡單的方法,沒有必要擔心釋放anythinng
只需複製這段代碼AndroidLauncher.java文件
@Override protected void createWakeLock(boolean use){use = true; super.createWakeLock(使用); }
不要忘了'wakeLock.release();(如果您的應用程序停止IE)'當你用它做 – FoamyGuy 2013-03-06 19:50:48
一個更安全的方法是使用'setKeepScreenOn ()'或'android:keepScreenOn'作爲活動中的某個'View'。您不需要'WAKE_LOCK'權限,並且無法釋放它,您不會輕易搞砸它。只要屏幕保持不變,View'不再處於前臺,設備行爲就會恢復正常。 – CommonsWare 2013-03-06 19:59:08
@CommonsWare,謝謝,我不知道,現在我知道 – JRowan 2013-03-06 20:07:24