2013-03-06 77 views

回答

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權限,並且無法釋放它,您不會輕易搞砸它。只要保持屏幕顯示的View不再處於前景中,設備行爲就會恢復正常。

+1

不要忘了'wakeLock.release();(如果您的應用程序停止IE)'當你用它做 – FoamyGuy 2013-03-06 19:50:48

+6

一個更安全的方法是使用'setKeepScreenOn ()'或'android:keepScreenOn'作爲活動中的某個'View'。您不需要'WAKE_LOCK'權限,並且無法釋放它,您不會輕易搞砸它。只要屏幕保持不變,View'不再處於前臺,設備行爲就會恢復正常。 – CommonsWare 2013-03-06 19:59:08

+0

@CommonsWare,謝謝,我不知道,現在我知道 – JRowan 2013-03-06 20:07:24

7

儘管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); 
} 
+0

這是'用useWakelock'加一點L,謝謝:) – Loknar 2015-01-10 16:03:58

+0

謝謝@Loknar,修復它。 – 2015-01-10 19:19:45

0

更好,更簡單的方法,沒有必要擔心釋放anythinng

只需複製這段代碼AndroidLauncher.java文件

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

更多看到enter link description here