AlarmManager(闹钟服务)

来源:互联网 发布:手机怎么开通淘宝网店 编辑:程序博客网 时间:2024/05/16 15:21

1、实例化AlarmManager

AlarmManager am= (AlarmManager) getSystemService(ALARM_SERVICE);//获取系统闹钟服务

2、设置闹钟

set(int type,long startTime,PendingIntent pi):一次性闹钟setRepeating(int type,long startTime,long intervalTime,PendingIntent pi):重复性闹钟setInexactRepeating(int type,long startTime,longintervalTime,PendingIntent pi):重复性闹钟,时间不固定setExact(int type, long triggerAtMillis, PendingIntent operation):在规定的时间精确的执行闹钟,比set方法设置的精度更高
> Type 闹钟类型有五个可选值:AlarmManager.ELAPSED_REALTIME:闹钟在手机睡眠状态下不可用,该状态下闹钟使用相对时间(相对于系统启动开始),状态值为3;AlarmManager.ELAPSED_REALTIME_WAKEUP闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟也使用相对时间,状态值为2;AlarmManager.RTC闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间,即当前系统时间,状态值为1;AlarmManager.RTC_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间,状态值为0;AlarmManager.POWER_OFF_WAKEUP表示闹钟在手机关机状态下也能正常进行提示功能,所以是5个状态中用的最多的状态之一,该状态下闹钟也是用绝对时间,状态值为4;不过本状态好像受SDK版本影响,某些版本并不支持;> startTime:闹钟的第一次执行时间,以毫秒为单位> intervalTime:表示两次闹钟执行的间隔时间,也是以毫秒为单位> PendingIntent:绑定了闹钟的执行动作,比如发送一个广播、给出提示等等。

PendingIntent
如果是通过启动服务来实现闹钟提示,PendingIntent对象的获取就应该采用Pending.getService(Context c,int i,Intent intent,int flag)方法;

如果是通过广播来实现闹钟提示,PendingIntent对象的获取就应该采用 PendingIntentIntent.getBroadcast(Context c,int i,Intent intent,int flag)方法;

如果是采用Activity的方式来实现闹钟提示的话,PendingIntent对象的获取就应该采用PendingIntent.getActivity(Context c,int i,Intent intent,int flag方法。

3、取消闹钟

cancel(PendingIntent pi):取消AlarmManager的定时服务
0 0
原创粉丝点击