AlarmManager中常用的有三个方法:
1、set(int type,long startTime,PendingIntent pi),用于设置一次闹钟。
2、setRepeating(int type,long startTime,long intervalTime,PendingIntent pi),用于设置重复闹钟。
3、setInexactRepeating(int type,long startTime,long intervalTime,PendingIntent pi),同样是用于设置重复闹钟,但是它是不准确的,相对于第二个方法,也更加节能。
下面就看看这些方法中的参数:
type为闹钟的类型,可分为四个常量:
ELAPSED_REALTIME:闹钟在睡眠状态下不可用,使用的是相对系统启动时间。
ELAPSED_REALTIME_WAKEUP:闹钟在睡眠状态下可用,使用的是相对系统启动时间。
RTC:闹钟在睡眠状态下不可用,使用的是真实时间。
RTC_WAKEUP:闹钟在睡眠状态下可用,使用的是真实时间。
startTime:为开始时间
intervalTime:为重复闹钟的间隔时间,内置了几种:
INTERVAL_FIFTEEN_MINUTES15分钟
INTERVAL_HALF_HOUR半个小时
INTERVAL_HOUR一个小时
INTERVAL_HALF_DAY 半天
INTERVAL_DAY 一天
PendingIntent :广播的一个intent,我们用广播接受闹钟的定时任务,注册一个广播去接受,任务指令。
使用PendingIntent的getBroadcast (Context context, int requestCode, Intent intent, int flags)方法可以得到一个发送广播动作的PendingIntent对象
为以下4个常量或其他支持使用Intent.fillIn()来控制它的变量:
FLAG_CANCEL_CURRENT:如果描述的PendingIntent对象已经存在时,会先取消当前的PendingIntent对象再生成新的。
FLAG_NO_CREATE:如果描述的PendingIntent对象不存在,它会返回null而不是去创建它。
FLAG_ONE_SHOT:创建的PendingIntent对象只使用一次。
FLAG_UPDATE_CURRENT:如果描述的PendingIntent对象存在,则保留它,并将新的PendingIntent对象的数据替换进去。
另一个就是在manifest.xml中注册自己的广播
这样就可以实现定时任务了,如果要定时任务service启动还可以加上service
一般Android手机具有四种铃声可以设置,分别为:来电、短信、闹钟、系统等种类铃声,具体的设置编制为:1:先打开Android手机的内存卡盘,在里面成立个“media”文件夹,然后打开后成立个“audio”文件夹。
2:打开“audio”文件夹后,在里面非别成立“ringtones”(来电)、“notifications”(短信)、“alarms”(闹钟)、 “ui”(系统提示)。
3:然后遵循本身的需要将铃声存放到这几个文件夹中。
4:打开Android手机,在“菜单”-“设置”-“声音”这里便可以自行进行选择了。
【首要提示:把文件夹设置好,在把要设置的铃声放进指定文件夹后重启手机后,在进进设置里往设置,便可以选择刚才放进的铃声了〔短信铃声设置编制—进进短信内—按菜单键—进进设置里便可以设置短信铃声了〕
现在有一个定时提醒的功能, 用 AlarmManager 自己来做,有多少坑做过的都知道。(应用被kill, 应用保活,息屏,关机重启,多版本兼容问题。。。)。要自己做一个完善的不是 1-2天就能搞定的。当然如果是应用内简单的定时执行,定时提醒 AlarmManager 还是很好用的。
https://www.jianshu.com/p/1f919c6eeff6
对于这种需求可以调用系统闹钟或用系统日历的提醒事件来做。
日历提醒功能可以直接用 Intent 起日历提醒界面,这样最简单,不需要权限。
调用API 直接设置需要动态申请权限
https://www.cnblogs.com/loaderman/p/10489592.html
https://developer.android.com/guide/topics/providers/calendar-provider
设置系统闹钟需要 SET_ALARM 权限
取消闹钟用 AlarmClock.ACTION_DISMISS_ALARM
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)