写在前面:为了今后更有效地学习和工作,决定把正在学习和开发的功能或者项目的过程记录下来,方便自己以后遗忘了相关知识点还能来博客看看重拾其来。如果有幸能让他人看到并从中学到点什么,也是极好的。由于是个人随手写下的一些笔记,如果有逻辑不清晰,语言描述不清楚或者是写到的内容有什么遗漏和出错的地方,大家请尽情地提出来~~好了,下面言归正传。
一、一些资料
首先贴几篇前辈们的博客,这是我进行Android闹钟开发之前找到的几篇质量比较好的干货。如果想多了解闹钟开发用到的类和参数的含义,可以着重看下第二篇和第三篇。
Android闹钟 AlarmManager的使用:http://www.cnblogs.com/mengdd/p/3819806.html
Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作:http://www.cnblogs.com/zyw-205520/p/4040923.html
Android杂谈–闹钟详谈:http://hualang.iteye.com/blog/1304054
Android之Broadcast, BroadcastReceiver:http://www.cnblogs.com/playing/archive/2011/03/23/1992030.html
这篇笔记中有三个重要的知识点需要事先了解:系统闹钟服务的接口——AlarmManager,Android中的邮递员——Intent与PendingIntent,Android四巨头之一的广播——Broadcast和BroadcastReceiver。大家可以轻易地从网上搜索到相关的资料,也可看我贴出来的链接,因此我就不再重复赘述了。
二、开发一个简单的闹钟DEMO
既然是从零开始开发一个闹钟,那自然要从最基础的开始。我们首先要开发一个简单、能按时执行相关操作的DEMO来模拟和了解闹钟的运行原理。
在创建了新的项目后,我们需要在AndroidManifest.xml中注册广播,在Android Studio中我们可以通过菜单选项快速进行Receiver的注册:
点击选项后,会自动生成一个Receiver的.java文件并完成AndroidManifest.xml中的注册。根据需要,在AndroidManifest.xml中的receiver标签对中声明隐式意图的action:
<receiver
android:name=".MyReceiver"
android:enabled&