2013-03-06 89 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