保持屏幕,哪种方式?

时间:2010-05-05 09:09:26

标签: android screen

我找到了两种保持屏幕的方法:

第一个更简单:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

第二个是使用唤醒锁并需要额外许可:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);  
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");

除了第二种方法实施起来更复杂并需要额外许可之外,这两种方法之间是否有任何真正的区别?最终结果总是一样吗?

1 个答案:

答案 0 :(得分:22)

您应该看到Coding for (Battery) Life Google IO演示文稿,幻灯片16

如果您不想,那么:您可以在XML中为任何布局元素执行第一个,并且它是建议使用的(不知道将其应用于窗口,但可能是像唤醒者一样糟糕,dunno)。

<强> XML:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:keepScreenOn="true">

窗口标记:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);