保持屏幕,哪个方向?

Jan*_* S. 9 android screen

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

第一个更简单:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)

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

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);  
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*maa 23

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

如果您不想,那么:您可以在XML中为任何布局元素执行第一个布局元素,并且它是建议使用的(不知道将它应用于窗口,但可能与wakelock,dunno).

XML:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:keepScreenOn="true">
Run Code Online (Sandbox Code Playgroud)

窗口标志:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)