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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QI_Rainbow/article/details/78203859

做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文件中添加权限:

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


方法二:

在Activity布局中设置Windows属性进行控制,但是一定要在加载布局之前执行,此种方法的局限性是只有在Activity类中有效,Activity退出时失效。

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, 
    WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
setContentView(R.layout.***);


方法三:

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

View的xml布局中加入:

android:KeepScreenOn="true"

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

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



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页