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

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,否则应用会一直处于耗电状态。

©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:上身试试 返回首页