手机更新时间后,过期的闹钟异常响起

原创 2016年08月30日 22:59:36

前段时间测试提了一个bug,是这样的,设置一个闹铃,等待闹铃时间到,闹铃响应,然后插拔电池,让手机系统时间恢复到出厂默认时间,让手机联网,等待手机时间更新后,已经过期的闹钟突然响了,这让人百思不得其解,我在试图修改的时候发现在Desclock里竟然没有比对系统时间与设置闹铃时间比对然后执行响铃的逻辑(可能是本人水平有限),在解析唯一一个传入进来的Intent的时候发现唯一一个没被处理的消息类型TIME_TICk,然后追踪发现在framework的AlrmManagerService中有一个PengdingIntent是发送这个消息的(猜想比对时间的逻辑可能更加底层),当时在想如果在发送PengdingIntent的时候加个判断,如果当前时间与系统时间的差值大于一分钟,就停止响铃,可一想又不对,如果我在这里禁止里一分钟意外的响铃,那么延时闹钟也会被禁掉,所以将此问题提交给MTK平台,他们给出的回复是这样的:

After change the system time, System will send TIME_SET broadcast, DeckClock receives it and set the passed alarm as MISSED state.
however, because the user has set an valid alarm before, AlarmManager will send the alarm broadcast either, and this action will make the alarm rings.
That is the problem, if DeskClock receives the AlarmManager’s action first, it will ring, then receive TIME_SET, that it makes the alarm dismiss.
The behavior is expected as per Google default design.
The processsing of broadcast for TIME_SET may be parsed as per the system scheduling.
In some cases the AlarmManager action for alarm expiry may be parsed before processing TIME_SET by alarm service.
This causes the Alarm screen to appear. However, as soon as the TIME_SET is processed, we configure the MISSED_STATE for the alarm and dismiss the screen.

由此可知这根本不是bug,而是谷歌设计师当初设计的时候就是这样的

版权声明:本文为博主原创文章,未经博主允许不得转载。

android手机中指纹识别应用相关功能的讲解

现在很多手机厂商都加入了指纹芯片,相对应的就要开发一系列相配套的指纹相关功能,其中基本功能为应用锁,应用冻结,通过指纹关闭闹钟,通过指纹拍照,通过指纹接听电话,指纹作为密码对文件加密,自定义滑动指纹器...

Android开发:闹钟响起时间不精准等问题

闹钟时间不精准、每周每天重复闹钟设置、重启后闹钟不响、锁屏情况下闹钟响...
  • chenht8
  • chenht8
  • 2016年12月22日 22:13
  • 1276

FAQ08356][Audio Volume]来电\闹钟\短信提示\铃声预览\拍照音等,在播放过程中插入或者拔出耳机,外放中的铃声音异常

DESCRIPTION] 来电铃声,闹钟铃声,短信提示音,铃声预览以及拍照音等,在播放过程中插入耳机或者拔出耳机,外放中的铃声音量会出现变大或者变小等不符合用户体验的现象。 [SOLU...

初学Android,手机闹钟服务(六十八)

AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟。通过对它的使用,它的作用和Timer有点相似。都有两种相似的用法:(1)在指定时长后执行某项操作(2)周期性的执行某项操作在an...
  • lee576
  • lee576
  • 2012年10月15日 16:47
  • 19010

初学Android,手机闹钟服务(六十八)

android手机calendartimertimezone音乐 AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟。通过对它的使用,它的作用和Timer有点相似。 都有两种相...

AlarmManager手机闹钟服务

一、简介 AlarmManager的本质是一个全局的定时器,AlramManager可在指定的时间或周期启动其他组件。 二、常用方法 1.set(int type,long trigge...

在app未开启时,实现对用户进行通知提醒功能总结(添加事件到手机系统日历并设置闹钟提醒)

最近在做项目遇到一个需求,在app未开启时,能够对用户进行通知提醒明天有培训课需要参加。最开始想到可以用第三方实现推送,如极光推送、融云推送等,但是这些推送的原理都是采用的长连接,仅仅当你的app在开...

LCD显示时钟,可断电保存,调整时间,调整闹钟

/*接线: P2.2   ---> j42.b1(蜂鸣器) P2.1   ---> iic.SDA P2.0   ---> iic.SCL P1     ---> j24(矩阵键盘) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:手机更新时间后,过期的闹钟异常响起
举报原因:
原因补充:

(最多只允许输入30个字)