CHINA
DeskClock分析文档
DeskClock分析文档
DeskClock分析
一. DeskClock界面 二. Alarms界面 三. 设置闹钟参数 四. 设置Alarms属性 五. 布局文件 六. 个人总结及BUG
附件:Deskclock类图
2
DeskClock分析文档
一. DeskClock界面
DeskClock界面的组件
View组件中包括: NextAlarm,BatteryDisplay,WeatherCurrentTemperature,WertherHighTemerature,WertherLowTemerature,WertherLocation,Date,TimeDisplay,AmPm(天气组件部分未实现)
Button组件中包括:alarm_button gallery_button music_button home_button nightmode_button
2.DeskClock继承Activity类,主要实现跳转功能。 通过将监听器绑定在Button上,实现界面跳转。
本界面重点在于屏保的转换,通过nightmode_button按钮,实现暗屏,屏保等功能。 屏幕明暗转换: · 暗~明:
UI~创建View并监听~执行nightmodeButton~Dodim~判断true/false执行是否变暗。
· 明~暗:
UI~创建View并监听~接收到点击黑屏事件~ nightmodeButton~Dodim~判断true/false执行是否变暗。
屏保模式:(超时自动屏保,手动屏保,黑屏移动,退出屏保模式)
· 超时自动屏保:
另起线程~当屏幕超时无操作时~新建View,Window获得并显示信息~创建数据~刷新数据~设置可见~确定位置。 · 长按变暗:
UI~判断dimed的true/false~按nightmodeButton~接受黑屏事件并定义View,将数据显示在黑屏上~刷新数据~刷新闹钟~创建View来显示时钟数据并重新定义位置。 · 黑屏移动:
另起线程~当改变位置时~调用moveScreenSaver~确定位置~定义长宽.
Digital:另起线程,更新数据~更新~改变格式
· 退出屏保:
onDetachedFromWindow~DigitalClock~onFinishInflate~AmPm~setDateFormat~get24HourMode~setShowAmPm~onAttachedToWindow,过滤~另起线程~更新数据
? 常量: ACTION_DATE_CHANGED ACTION_BATTERY_CHANGED ACTION_MIDNIGHT BATTERY_STATUS_UNKNOWN QUERY_WEATHER_DATA_MSG UPDATE_WEATHER_DISPLAY_MSG QUERY_WEATHER_DELAY SCREEN_SAVER_TIMEOUT_MSG
广播行动:时间已经改变了 系统定义,包括充电状态,普通状态 夜间模式(黑屏) 位置位置 查询天气信息 更新天气显示信息 查询天气是否显示 超时屏保信息
3
DeskClock分析文档
SCREEN_SAVER_MOVE_MSG FLAG_SHOW_WHEN_LOCKED FLAG_ALLOW_LOCK_WHILE_SCREEN_ON FLAG_TURN_SCREEN_ON FLAG_KEEP_SCREEN_ON SCREEN_SAVER_COLOR_DIM ACTION_GENIE_REFRESH WEATHER_CONTENT_AUTHORITY WEATHER_CONTENT_PATH BATTERY_STATUS_CHARGING BATTERY_STATUS_FULL NEXT_ALARM_FORMATTED INVISIBLE FLAG_FULLSCREEN BRIGHTNESS_OVERRIDE_OFF BRIGHTNESS_OVERRIDE_NONE ACTION_EXIT_DESK_MODE ALARM_SERVICE CATEGORY_DESK_DOCK EXTERNAL_CONTENT_URI FLAG_ACTIVITY_CLEAR_TOP FLAG_ACTIVITY_NEW_TASK INTENT_ACTION_MUSIC_PLAYER ACTION_MAIN DOCK_SETTINGS_ACTION
屏保移动信息 锁屏显示 亮屏允许锁定 亮屏 保持亮屏 暗屏 当局天气内容 天气路径 电池充电状态 电池慢点状态 格式化下一个闹铃 不可见的(视图) 满屏,隐藏所有装饰 关闭覆盖亮度 无覆盖亮度 桌面模式 闹铃服务 桌面底座种类 外部内容的URI 清除顶部活动 新建活动栈 跳转music 跳转home 设置底座
4
DeskClock分析文档
二. Alarms界面
?
要解决哪些问题: ? 闹钟涉及到有关类和方法 ? 怎样闹铃 ? 闹铃之后的操作
闹钟涉及到有关类和方法
? ? ? ? ? ? ? ? ? ? ? ?
BroadcastReceiver PendingIntent AlarmManager ContentObserver Parcelable LayoutLayout
存储和获取数据的机制——preference ContentResolver
newView和bindView的作用
Notification与Toast的区别以及Notification的使用 如何将应用程序的数据暴露出去 如何在Activity之间共享数据
? BroadcastReceiver
BroadcastReceiver是Android中用处巨大的异步消息机制。它有轻量和跨进程的性质。一个BroadcastReceiver对象的生命周期不超过5秒,不能绑定服务和做一些耗时的操作,但是用来收发信号和消息则绰绰有余。 · BroadcastReceiver的几种用法:
1.把耗内存很多的操作(如:下载或流量统计),注册在一个跨进程的Service里面,通过BroadcastReceiver与前台通信。
? PendingIntent Intent it = new Intent(); it.putExtra(\it.setAction(\this.sendBroadcast(it); } 5