查看“︁BUG实例分析四:android.intent.action.SCREEN OFF未被及时处理导致系统消息阻塞”︁的源代码
←
BUG实例分析四:android.intent.action.SCREEN OFF未被及时处理导致系统消息阻塞
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:*、
用户
您可以查看和复制此页面的源代码。
logcat: <pre> 08-24 17:47:09.688 I/ANRManager( 609): startAsyncDump: AnrDumpRecord{ Broadcast of Intent { act=android.intent.action.SCREEN_OFF flg=0x50 0010 } ProcessRecord{417361b0 5221:com.example.intentblocktest/u0a10111} IsCompleted:false IsCancelled:false } 08-24 17:47:09.688 I/ANRManager( 609): dumpAnrDebugInfo begin: AnrDumpRecord{ Broadcast of Intent { act=android.intent.action.SCREEN_OFF g=0x50000010 } ProcessRecord{417361b0 5221:com.example.intentblocktest/u0a10111} IsCompleted:false IsCancelled:false } 08-24 17:47:09.688 I/ANRManager( 609): dumpAnrDebugInfoLocked: AnrDumpRecord{ Broadcast of Intent { act=android.intent.action.SCREEN_OFF g=0x50000010 } ProcessRecord{417361b0 5221:com.example.intentblocktest/u0a10111} IsCompleted:false IsCancelled:false } </pre> 原因: android.intent.action.SCREEN_OFF广播为order,即如果其中注册了此广播的任何应用在处理此广播时未返回,则会导致后续broadcast的失败,出现ANR,导致系统无法唤醒。 而导致广播未被及时处理的原因,除了可能是由于对应的Receiver处理函数中一些操作长时间未完成外,也可能是由于整个应用进程被block了,从而没有机会去调用Receiver函数。 ——为了验证这个问题,可以写一个应用,注册SCREEN_OFF广播,然后在onPause中加入一个死循环,则会导致系统无法点亮屏幕进入待机!而当将SCREEN_OFF这个广播不加以注册,则不会引起系统问题(当然应用还是会有问题)。
返回
BUG实例分析四:android.intent.action.SCREEN OFF未被及时处理导致系统消息阻塞
。
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
设置
查看历史
更多
搜索
导航
首页
Ubuntu
Android
C&CPP
Java
Python
AI
大杂烩
最近更改
工具
所有页面
文件列表
页面信息
特殊页面