我以前写了个复杂闹钟的demo,参见Android闹钟【复杂版】【大明进化十五】 .但是里面的bug有一些,好多人留言,所以我就看看源码,找找原因?顺便把源码代码整理出来,弄成一个完整的可以运行的apk,今天上午就整理了一下,才发现,源码处理的逻辑多一些,考虑的情况多,比如开机后接收一个广播,然后从数据库中取时间和当前时间对比,设置闹钟,当时区改变了,也会发送广播,对闹钟进行设置的。
转载请标明出处:http://blog.csdn.net/wdaming1986/article/details/7461043
有人问我:“当设置一个闹钟后,然后调系统时间超过设置的闹钟的时间,这时候闹钟响了??”
通过源码,我发现这种情况是正常的。不是bug。可以理解。
以下是我发现的几点闹钟中重要的点,分享一下:
(1)在闹钟中有AudioManager管理机制,这个机制可以申请和释放OnAudioFocusChangeListener监听。
还有mTelephonyManager对象,处理在闹钟响的时候,来电铃声的切换。
(2)广播接收闹钟,通过广播启动AlarmKlaxon这个Service,隐式启动service:
public static final String ALARM_INTENT_EXTRA = "intent.extra.alarm";
[java] view plaincopyprint?
// Play the alarm alert and vibrate the device.
Intent playAlarm = new Intent(Alarms.ALARM_ALERT_ACTION);
playAlarm.putExtra(Alarms.ALARM_INTENT_EXTRA, alarm);
context.startService(playAlarm);
在mainfest中,AlarmKlaxon这个服务的定义如下:
[java] view plaincopyprint?
<service android:name="AlarmKlaxon"
android:description="@string/alarm_klaxon_service_desc"
>
<intent-filter>
<action android:name="com.cn.daming.deskclock.ALARM_ALERT" />
</intent-filter>
</service>
这个service做的是允许别的Activity打断正在响铃的铃声,播放其他的铃声,例如,闹钟响的时候来电话了。
(3)在listview中包含checkbox,这时候闹钟的处理时,activity实现一个OnItemClickListener的监听,点击每一项的监听。然后在checkbox单独拿出去写一个类,继承LinearLayout,重写setPressed()这个方法,以实现“当点击checkbox的时候不触发parent的click事件”。关键代码如下:
[java] view plaincopyprint?
<span style="font-size:18px;"> @Override
public void setPressed(boolean pressed) {
// If the parent is pressed, do not set to pressed.
if (pressed && ((View) getParent()).isPressed()) {
return;
}
super.setPressed(pressed);
}</span>
下面看看我的程序截图:
红色圈的图标为我的闹钟。 点击“玲闹钟”后的界面
点击新建闹钟出现的界面 设置好时间弹出的toast。
分享到:
相关推荐
Android闹钟最终版源码,一个挺不错的东西,学习android的兄弟们可以参考下了
android闹钟源码安卓时钟闹钟程序源码合集(16例),可以做为你学习设计参考。
原封不动的android2.3闹钟源代码,下载一次,受用一生,欢迎下载学习
Android 闹钟源码.zip
Android源码——闹钟源代码.zip
Android闹钟源码
android闹钟源码闹钟程序源码15个合集: AlarmClock.tar.gz AlarmTest.zip AndroidRTC-master.zip Android自动开关机实现.pdf Android自动开关机实现.rar ClockPackage.apk-af47e27b7952e0ecccc9b005352d19d20c67eb...
Android应用源码30套安卓源码合集: andriod闹钟源代码.rar Android Gps日志记录程序源码.rar Android MP3播放器,带卡拉OK字幕.rar Android 个人记账程序源码.rar ...高仿人人Android梦想版终极源码.rar
Android Studio闹钟[android源码] 界面简洁干净,此App有闹钟功能。闹钟可进行添加几组闹钟,实现简单的响铃闹钟提醒,长按已定闹钟可以删除闹钟
Android 闹钟源码
android 系统的基于4.4 源码进行了摘取 闹钟源码 通过AlarmManager 实现定时闹钟
本项目是一个集成闹钟,倒计时,秒表等功能的安卓闹钟应用源码,测试了一下项目界面美观大方,功能完整无bug
Android闹钟源码包,里面包含主流闹钟源码、rtc闹钟源码……等等。详情请看源码。
Android程序研发源码Android 闹钟源码.zip
本小程序是android中小闹钟的源码,大家每天都在用这个闹钟提醒自己起床,所以对大家来说都是很常用的,大家可以多多的学习,看一看,这个功能对大家是很有帮助的,希望大家能够从中得到更多的帮助。
闹钟是基于Android studio开发的一款打扰睡觉的app,功能实现闹铃、添加、删除
android小闹钟源码,呵呵,比较实用
Android 闹钟功能实例源码 可供学习提高
android 系统闹钟源码 主要是为一个网友提问提供下载的