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

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

                                                                       

                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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值