用AlarmManager(闹钟)做一个定时器

来源:互联网 发布:淘宝设置第二件半价 编辑:程序博客网 时间:2024/06/05 19:07

小陌(自称),不喜欢说废话直接上代码:

                                                                       

                public void onReceive(Context context, Intent intent) {
Intent i = new Intent("cn.cibntv.stbdaemon.service");
context.startService(i);
Toast.makeText(context, "开机完成。。。", 0).show();
PendingIntent sender = PendingIntent.getService(context, 0, i, 0);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 1000 * 60, 1000 * 60, sender);
Toast.makeText(context, "Service satrt and create Alarm", 0).show();
Log.d("boot complete", "***Sstart service");
                                                                                              }

大家可以看的出这是在广播里调用的一个服务,没错,功能是:当手机开机启动时,系统会发送开机广播,进而启动AlarmManager。


下面我解释一下这个参数  setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 1000 * 60, 1000 * 60*30, sender);

                                             1.这个参数是当手机处于休眠状态时,也会启动手机的AlarmManager,进而执行任务。

                                                  2.表示AlarmManager注册后,到1min后,第一次去执行任务。

                                                  3.表示以后30min后执行一次任务。

                                                  4.传递PendingIntent (延迟意图)。

当然还有一些其他重载方法,大家可以goole一把,那么这个定时器和Timer有什么区别呢?我只知道当该应用的进程被系统回收时,Timer将会失效,但是AlarmManager 肯定不会。。。由于小陌处于小白阶段,所以请大家指点一二,不胜感激。。。

1 0
原创粉丝点击