Android在待机时会执行到framework//base/services/core/java/com/android/server/power/Notifier.java里的sendGoToSleepBroadcast,在此次会对电源状态进行判断,若待机较慢,耗时较长,则系统会发出sendWakeUpBroadcast,此广播里有screen on广播。

修改如下:

改之前:

709          if (powerState == INTERACTIVE_STATE_AWAKE) {
710         sendWakeUpBroadcast();
711         } else {
712            sendGoToSleepBroadcast();
713         }

改之后:

709          if (powerState == INTERACTIVE_STATE_AWAKE) {
710
711             Slog.d(TAG, "===powerState is INTERACTIVE_STATE_AWAKE.");
712
713             if (0 != SystemProperties.getInt("sys.str.suspending", 0))
714             {
715             Slog.d(TAG, "===is suspending so sendGoToSleepBroadcast.");
716             sendGoToSleepBroadcast();
717             }
718         else
719             {
720             sendWakeUpBroadcast();
721             }
722           /*
723             mHandler.postDelayed(new Runnable() {
724                 @Override
725                 public void run() {
726                 sendWakeUpBroadcast();
727                 }
728             }, 1000);
729                     */
730          } else {
731              sendGoToSleepBroadcast();
732          }

测试验证OK,问题解决。原本想通过delay 避免此问题,但发现不同平台待机时间有差异且会影响待机时间,所以通过一个待机属性来判断最佳。

Android待机时收到screen on广播相关推荐

  1. Android 第十九课 大喇叭--广播机制----动态注册监听网络变化与静态注册实现开机启动

    为了便于进行 系统级别的消息通知,Android引入了一套广播消息机制. 1.广播机制简介: 因为Android中的每个应用程序都可以对自己感兴趣的广播尽心注册,这样程序只会接收自己所关心的广播内容, ...

  2. android 学习随笔十六(广播 )

    1.广播接收者 BroadcastReceiver 接收系统发出的广播 现实中的广播:电台为了传达一些消息,而发送的广播,通过广播携带要传达的消息,群众只要买一个收音机,就可以收到广播了  Andro ...

  3. Android四大组件系列7 Broadcast广播机制(上)

    一 概述 广播 (Broadcast) 机制用于进程或线程间通信,广播分为广播发送和广播接收两个过程,其中广播接收者 BroadcastReceiver 是 Android 四大组件之一.Broadc ...

  4. Android四大组件Broadcast中注册广播registerReceiver流程源代码详解

    在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间 ...

  5. 安卓Intent的Action中的常值变量:窗口action常量(android.intent.action.+xxx),广播action常量(android.intent.action.+xxx)

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓Intent的Action中的常值变量:窗口action常量,广播action常量 窗口action名称常量,"android.inte ...

  6. 待机时反复按Power键概率性重启-定位问题

    现象: 待机时反复按power键休眠会有概率性重启,概率 >= 50%,但连接USB线情况下不会出现,所有怀疑是系统进入休眠才发生了异常,取出mtklog看到有db产生,确实发生了KE(kern ...

  7. Android 屏幕唤醒 + 屏幕解锁 + 开机广播android.intent.action.BOOT_COMPLETED

    Android 屏幕唤醒 + 屏幕解锁 + 开机广播android.intent.action.BOOT_COMPLETED 1.内容说明 Android手机开机后,会发送android.intent ...

  8. Android调试时常用的adb命令

    Android调试时常用的adb命令 1.adb shell am am是Activity Manager的缩写,使用此命令可以从控制台启动Activity.Service,打开或关闭进程,发送广播等 ...

  9. Android运行时权限 1

    Android 运行时权限 一.Android 权限发展史 二.Android6.0 权限简介 1.Normal Permissions (普通权限) 2.Dangerous Permissions ...

最新文章

  1. Idea中类实现Serializable接口 引入 serialVersionUID
  2. ajax请求挂起_Ajax请求内部循环挂起浏览器?
  3. Nginx安装及配置简介
  4. 您需要了解的WordPress漏洞以及如何修复它们
  5. springboot 入门二- 读取配置信息一
  6. ChEMBL数据库的官方python工具包
  7. 程序员专属段子集锦 5/10
  8. 任正非:HR面试不深刻导致大规模进人、走人,耽误人家几年对得起人家吗?...
  9. kettle中Pan kitchen用法及bat写法
  10. 做个简单的Java学生考勤系统06--签到功能完善
  11. 网络的攻防,简单两步像黑客一样实现命令行对话,不需要社交软件也可以聊天,基础知识(一)
  12. STM32 ADC 过采样技术
  13. 暑期作息时间表模板_2015中学生暑假作息时间表模板
  14. Android Q 上的Biometric生物识别之Fingerprint指纹识别流程
  15. html5 图片合成,H5案例分享:图片合成
  16. 怎么测试网站服务器速度,怎么测试网站速度
  17. 详解ZStack Cloud v4.0:自研VPC网络模型实践指南
  18. 视频号直播间微信小程序开发制作介绍
  19. python制作海报_生成海报(前端 | python)
  20. Semantic Mapping in ROS学习及代码运行

热门文章

  1. 数码相机夜景拍摄技巧
  2. php 全局变量 $global 跨文件,PHPGlobal全局变量 - 米扑博客
  3. 微信小程序request合法域名配置
  4. linux7 掉电,设置RHEL7电源按钮的行为
  5. linux 创建目录命令_如何使用一个Linux命令创建多个子目录
  6. Python -- Matplotlib库的使用
  7. Java 细节汇总(4)-Arrays 中的双轴快排
  8. yum 安装 npm
  9. 二叉堆算法具体实现细节- Java实现
  10. 发送带附件的邮件怎样写