Android应用禁止屏幕休眠的几种方法

做Android应用开发时,有时需要在应用前台运行时,禁止休眠,以下几种方法供参考。

方法一:

添加休眠锁,休眠锁必须成对出现。

private WakeLock mWakeLock;

private void acquireWakeLock() {
    if(mWakeLock == null) {
        PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
        mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, 
            this.getClass().getCanonicalName());
        mWakeLock.acquire();

    }

}

private void releaseWakeLock() {
    if(mWakeLock != null) {
        mWakeLock.release();
        mWakeLock = null;
    }
}

AndroidManifest.xml文件中添加权限:


 

 

方法二:

在Activity布局中设置Windows属性进行控制,此种方法的局限性是只有在Activity类中有效,Activity退出时失效。

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

 

方法三:

在View布局中添加属性,此种方法的好处是不一定非要在Activity界面运行时屏幕常亮才有效,View启动后可以自主设置。

View的xml布局中加入:

 

android:KeepScreenOn="true"

 

代码中执行是否保持屏幕常亮:

View.setKeepScreenOn(true);
View.setKeepScreenOn(false);

 

 

 

 

 

你可能感兴趣的:(Android)