本平台的文章更新会有延迟,大家可以关注微信公众号-顾林海,包括年底前会更新kotlin由浅入深系列教程,目前计划在微信公众号进行首发,如果大家想获取最新教程,请关注微信公众号,谢谢
AlarmManager是Android SDK提供的一个唤醒API,它是系统级别的服务,可以在特点的时刻广播一个指定的Intent,这个PendingIntent可以用来启动Activity、Service或BroadcastReceiver。
使用方式如下:
private void initAlarmManager(){
Intent intent=new Intent("com.glh.alarmmanager");
PendingIntent pendingIntent=PendingIntent.getBroadcast(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),60*10*1000,pendingIntent);
}
上面代码中每隔10分钟会唤醒一次,同时对指定的Intent发送广播。
AlarmManager提供了常用的三种方法:
set:设置一次性的闹钟操作。
setRepeating:设置重复性的闹钟操作。
setInexactRepeating:也是设置重复性的闹钟操作,只不过两个相连的闹钟执行的间隔时间不是固定的。
三个方法传入的第一个参数type为闹钟的类型,有以下几种类型:
RTC_WAKEUP:表示闹钟在睡眠状态下唤醒系统并执行提示功能,绝对时间。
RTC:睡眠状态下不可用,绝对时间。
ELAPSED_REALTIME_WAKEUP:睡眠状态下可用,相对时间。
ELAPSED_REALTIME:睡眠状态下不可用,相对时间。
绝对时间就是手机的时间,相对时间是相对于开机时间。
AlarmManager的唤醒功能比较耗电,通常情况下需要保证两次唤醒操作的时间间隔不要太短,在不需要使用唤醒功能的情况下尽早取消AlarmManager,否则应用会一直处于耗电状态。
扫码_搜索联合传播样式-标准色版.png
Android、Java、Python、Go、PHP、IOS、C++、HTML等等技术文章,更有各种书籍推荐和程序员资讯,快来加入我们吧!关注技术共享笔记。
838794-506ddad529df4cd4.webp.jpg
搜索微信“顾林海”公众号,定期推送优质文章。