云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Android Alarm学习笔记

Android Alarm学习笔记

  • 62 次阅读
  • 3 次下载
  • 2025/5/2 18:36:55

设置一个Alarm需要更新一下数据。 1. update alarms.db

2. update com.android.alarmclock_preferences.xml

3. update Settings.System.NEXT_ALARM_FORMATTED for status bar 4. set Kernel RTC alarm or send a message if no driver

具体的函数调用如下所示:

com.android.alarmclock.AlarmClock.onCreate()

SetAlarm.onPreferenceTreeClick() -> SetAlarm.saveAlarm() -> Alarm.setAlarm()

_ALARM_FORMATTED) -> android.app.AlarmManager.set()

->

AlarmManagerService.set()

->

AlarmManagerService.setRepeating -> AlarmManagerService.setLocked() -> android.app.IAlarmManager.set() -> RTC.save()// /dev/alarms

Alarm闹铃的函数调用如下所示: RTC

(WAKEUP)

->

AlarmReceiver.onReceive(ALARM_ALERT_ACTION)

->

AlarmAlert.onCreate() ->

AlarmAlertWakeLock.acquire()/KeyguardManager.newKeyguardLock().disableKeyguard() ->

AlarmKlaxon.postPlay() AlarmAlert.dismiss() ->

AlarmAlertWakeLock.release()/KeyguardManager.newKeyguardLock().reenableKeyguard()

->

AlarmKlaxon.KillerCallback().onKilled()

->

->

Alarm.setNextAlert()

->

Alarm.enableAlert(ALARM_ALERT_ACTION)/saveNextAlarm(Settings.System.NEXT

->

DeskClock App中的code block说明如下:

Alarm是描述闹钟的抽象类。

AlarmAlert处理闹铃过程中系统相关的事件,继承AlarmAlertFullScreen。 AlarmAlertFullScreen显示闹铃界面,并处理闹钟界面上到控件消息。 AlarmAlertWakeLock提供控制wakelock接口。

AlarmClock闹钟界面,包括闹钟列表、数字时钟、option菜单。

AlarmKlaxon是一个服务,提供闹铃和震动功能,如果一个闹铃fire,前面一个闹铃已经在闹来,则取消前面那个,闹后来者。 AlarmPreference闹铃文件。 ContentProvider维护闹钟表,字段包括_id、hour、minutes、daysofweek、alarmtime、enabled、vibrate、message、alert。

Alarms提供了操作闹钟的接口,相当于AlarmManager。enableAlert()设置一个闹钟,用的是PendingIntent到方式计算时间。RTC的设置在enableAlert()的am.set(AlarmManager.RTC_WAKEUP, atTimeInMillis, sender); RTC_WAKEUP表示该Alarm如果在关机的情况下来到,则会自动开机闹铃。

DeskClock桌面时钟到activity。其中包括了系统时间、日期、电池及天气等信息,其中天气信息是判断是否存在提供天气信息的app后,从数据库中读取当前的天气信息来更新。也就

是天气APP只需要更新数据库中的天气信息即可。 DigitalClock维护数字时钟。

HandleSetAlarm设置alarm到activity。

Framework相关的code block如下:

AlarmManager和AlarmManagerService,这两个文件组成了AlarmService。

关于PendingIntent:

PendingIntent就是一个Intent的描述,我们可以把这个描述交给别的程序,别的程序根据这个描述在后面的别的时间做你安排做的事情 (By giving a PendingIntent to another application, you are granting it the right to perform the operation you have specified as if the other application was yourself,就相当于PendingIntent代表了Intent)。本例中别的程序就是发送短信的程序,短信发送成功后要把intent广播出去。

搜索更多关于: Android Alarm学习笔记 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

设置一个Alarm需要更新一下数据。 1. update alarms.db 2. update com.android.alarmclock_preferences.xml 3. update Settings.System.NEXT_ALARM_FORMATTED for status bar 4. set Kernel RTC alarm or send a message if no driver 具体的函数调用如下所示: com.android.alarmclock.AlarmClock.onCreate() SetAlarm.onPreferenceTreeClick() -> SetAlarm.saveAlarm() -> Alarm.setAlarm() _ALARM_FORMAT

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com