Android学习笔记之定时任务

本文介绍了在Android中如何使用Alarm类来实现定时任务,详细讲解了AlarmManager的不同设置方法及其区别,以及Android 6.0及以上系统的Doze模式对定时任务的影响。在Doze模式下,系统会限制网络访问、CPU唤醒等,Alarm任务将在退出Doze模式时执行。
摘要由CSDN通过智能技术生成

使用Alarm类来实现定时任务

在Java中我们是通过Timer类来实现定时任务的,但是Android手机会在长时间不操作的情况下自动让cpu进入到睡眠状态,从而延长待机时间,这样一来就有可能导致Timer类的定时任务无法正常运行。而Alarm则具有唤醒cpu的功能。

1.获取AlarmManager的实例

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

这里获取AlarmManager实例的方法和获取NotificationManager实例的方法类似,都是通过调用Context.getSystemService()方法,然后传入Context.ALARM_SERVICE来获取。

2.设置定时任务

alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,triggerAtTime,pendingIntent);

设置定时任务的时候,有四种方法,分别为set()、setExact()、setAndAllowWhileIdle()、setExactAndAllowWhileIdle()。这四种方法的区别一会再说,先看看它们的参数列表。一般而言它们都接收三个参数,分别为:定时任务工作类型、定时任务触发的时间(毫秒为单位)以及PendingIntent。其中工作类型又有以下四种情况:

  • AlarmManager.ELAPSED_REALTIME_WAKEUP:表示让定时任务的触发时间从系统开机开始算起,会唤醒CPU
  • AlarmManager.ELAPSED_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值