当前位置: 首页 > news >正文

安卓屏幕息屏唤醒

背景,今天遇项目需要,需要在下载在后台任务运行时(如下载、上传或进行长时间计算),保持 CPU 活动,然后就写了这个实现方法,废话不多说上代码

第一步,再清单AndroidManifest文件声明权限:

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

import android.content.Context;
import android.os.PowerManager;import android.util.Log;/***    屏幕唤醒*/
public class ScreenManager {private static final String TAG = "ScreenManager";private PowerManager powerManager;private PowerManager.WakeLock wakeLock;public ScreenManager(Context context) {powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "MyApp::MyWakelockTag");}public void acquireWakeLock() {if (wakeLock != null && !wakeLock.isHeld()) {wakeLock.acquire();Log.d(TAG, "成功获取WakeLock");} else {Log.d(TAG, "WakeLock已经被持有");}}public void releaseWakeLock() {if (wakeLock != null && wakeLock.isHeld()) {wakeLock.release();Log.d(TAG, "成功释放WakeLock");} else {Log.d(TAG, "WakeLock未被持有");}}
}

 调用如下:

public class MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity";private ScreenManager screenManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);screenManager = new ScreenManager(this);Log.d(TAG, "MainActivity 创建完成");}@Overrideprotected void onResume() {super.onResume();screenManager.acquireWakeLock();Log.d(TAG, "MainActivity 恢复");}@Overrideprotected void onPause() {super.onPause();screenManager.releaseWakeLock();Log.d(TAG, "MainActivity 暂停");}@Overrideprotected void onDestroy() {super.onDestroy();screenManager.releaseWakeLock();Log.d(TAG, "MainActivity 销毁");}
}

 以上就是控制设备的电源状态。它可以防止设备在运行某些操作时进入休眠状态,确保应用在需要的时候能够继续运行

http://www.lryc.cn/news/472514.html

相关文章:

  • 类文件具有错误的版本 61.0, 应为 55.0
  • vue点击菜单,出现2个相同tab,啥原因
  • 【网络原理】——图解HTTPS如何加密(通俗简单易懂)
  • CentOS 修改服务器登录密码的完整指南
  • 【PnP】详细公式推导,使用DLT直接线性变换法求解相机外参
  • 怎样把书上的事件图改编成活动图-《分析模式》漫谈43
  • CodeFormer——基于代码本查找变换器的鲁棒盲人脸修复翻译
  • 监控场景下,视频SDK的应用策略
  • 前端面试必备!HTML 超实用考点全解析
  • 自动驾驶系统研发系列—避免事故的利器:AEB自动紧急制动系统详解
  • zabbix 6.0 监控clickhouse(单机)
  • Redis的RDB执行原理
  • 速度背!24下软考网工“经典100道母题来了”!
  • three.js 纹理(Texture)、深度纹理(DepthTexture)、视频纹理(VideoTexture)
  • 广东自闭症全托机构:提供高质量的康复服务
  • Nodejs安装配置及创建vue项目
  • 浅析正交投影矩阵和透视投影矩阵的推导
  • python四舍五入保留两位小数不足补0
  • Mybatis-15.动态SQL-if
  • gb28181-sip注册流程
  • WEBRTC教程:局域网怎么调试,http://172.19.18.101:8080 ,无法访问摄像头和麦克风,请检查权限
  • Apache POI—读写Office格式文件
  • 3162. 优质数对的总数 I
  • (五)Web前端开发进阶2——AJAX
  • 数据结构(java)——数组的构建和插入
  • AI-CNN-验证码识别
  • React 前端框架全面教程:从入门到进阶
  • 重拾CSS,前端样式精读-布局(弹性盒)
  • Python 使用 LSTM 进行情感分析:处理文本序列数据的指南
  • MySQL:INSERT IGNORE 语句的用法