android保持屏幕常亮

android设备在显示中可以设置休眠时间,但是目前很多android设备最长为30分钟。

1.使用PowerManager:

    @Override
    protected void onResume() {
        super.onResume();
        acquireWakeLock();
    }

    @Override
    protected void onPause() {
        super.onPause();
        releaseWakeLock();
    }

    private void acquireWakeLock() {
        if (wakeLocak == null) {
            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            wakeLocak = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "tag");
            wakeLocak.acquire();
        }
    }

    private void releaseWakeLock() {
        if (wakeLocak != null && wakeLocak.isHeld()) {
            wakeLocak.release();
            wakeLocak = null;
        }
    }
说明:
        WakeLock的设置是 Activiy 级别的,不是针对整个Application应用的。
      使用时候还应该加上权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DEVICE_POWER" />

2.使用Window.setFlags或者addFlags方法:

activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
或者

activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

Google推荐使用第二种方式,第二种方式不用添加权限,而且只是对屏幕,而不会使cpu一直消耗。


你可能感兴趣的:(cpu,Android开发,power,屏幕常亮)