PowerManager.WakeLock的简单使用

//使用PowerManager.WakeLock来保证程序运行时保持手机屏幕一直亮着。
public class MainActivity extends AppCompatActivity {
    private PowerManager.WakeLock mLock = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_main);
    }
    //点击按钮把屏幕设置为保持亮着的相应的状态。
    public void lock(View view){
        acquireWakeLock(this);
    }
    //获取锁
    public void acquireWakeLock(Context context) {
        if (mLock == null) {
            PowerManager powerManager = (PowerManager)(context.getSystemService(Context.POWER_SERVICE));

            //保持cpu运转,允许保持屏幕亮,但是可能是灰的
            mLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
//            //保持CPU 运转,屏幕和键盘灯有可能是关闭的。
//            mLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
//            // 保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
//            mLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "My Tag");
//            // 保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
//            mLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
//            // 正常唤醒锁实际上并不打开照明。相反,一旦打开他们会一直仍然保持(例如来世user的activity)。当获得wakelock,这个标志会使屏幕或/和键盘立即打开。一个典型的使用就是可以立即看到那些对用户重要的通知。
//            mLock = powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP, "My Tag");
//            // 设置了这个标志,当wakelock释放时用户activity计时器会被重置,导致照明持续一段时间。如果你在wacklock条件中循环,这个可以用来减少闪烁
//            mLock = powerManager.newWakeLock(PowerManager.ON_AFTER_RELEASE, "My Tag");
            mLock.acquire();
        }
    }
    //释放锁
    public void releaseWakeLock() {
        if(mLock != null && mLock.isHeld()){
            mLock.release();
            mLock = null;
        }
    }
    @Override
    public void onPause() {
        releaseWakeLock();
        super.onPause();
    }
}
//该程序运行得加上权限
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值