Android小知识-电量优化AlarmManager的使用

本平台的文章更新会有延迟,大家可以关注微信公众号-顾林海,包括年底前会更新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提供了常用的三种方法:

  1. set:设置一次性的闹钟操作。

  2. setRepeating:设置重复性的闹钟操作。

  3. setInexactRepeating:也是设置重复性的闹钟操作,只不过两个相连的闹钟执行的间隔时间不是固定的。

三个方法传入的第一个参数type为闹钟的类型,有以下几种类型:

  • RTC_WAKEUP:表示闹钟在睡眠状态下唤醒系统并执行提示功能,绝对时间。

  • RTC:睡眠状态下不可用,绝对时间。

  • ELAPSED_REALTIME_WAKEUP:睡眠状态下可用,相对时间。

  • ELAPSED_REALTIME:睡眠状态下不可用,相对时间。

绝对时间就是手机的时间,相对时间是相对于开机时间。

AlarmManager的唤醒功能比较耗电,通常情况下需要保证两次唤醒操作的时间间隔不要太短,在不需要使用唤醒功能的情况下尽早取消AlarmManager,否则应用会一直处于耗电状态。


搜索微信“顾林海”公众号,定期推送优质文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值