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一直消耗。


發佈了114 篇原創文章 · 獲贊 106 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章