如何修复android中的过度唤醒

如何修复android中的过度唤醒,android,alarmmanager,android-alarms,repeatingalarm,Android,Alarmmanager,Android Alarms,Repeatingalarm,最近,我从谷歌play store(Android Vitals)收到一份性能报告,报告如下 public void registerAlarm() { AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Calendar alarmTime = Calendar.getInstance(); PendingIntent poperation = Pend

最近,我从谷歌play store(Android Vitals)收到一份性能报告,报告如下

public void registerAlarm() 
{
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    Calendar alarmTime = Calendar.getInstance();
    PendingIntent poperation = PendingIntent.getService(this, 0, getIntentForNotification(this), 0);
    alarmManager.cancel(poperation);
    int currentapiVersion = android.os.Build.VERSION.SDK_INT;
    if (currentapiVersion < android.os.Build.VERSION_CODES.KITKAT) {
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), 1 * 60 * 60 * 1000, poperation);
    } else {
        alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), 1 * 60 * 60 * 1000, poperation);
    }
}
报警管理器唤醒过多 用户每小时经历10次以上唤醒的电池会话百分比。电池会话是指设备两次完全充电之间的时间间隔。仅当设备关闭充电器时才收集数据

我尝试了上述想法,但我没有弄清楚如何解决过度唤醒的问题

我的代码如下

public void registerAlarm() 
{
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    Calendar alarmTime = Calendar.getInstance();
    PendingIntent poperation = PendingIntent.getService(this, 0, getIntentForNotification(this), 0);
    alarmManager.cancel(poperation);
    int currentapiVersion = android.os.Build.VERSION.SDK_INT;
    if (currentapiVersion < android.os.Build.VERSION_CODES.KITKAT) {
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), 1 * 60 * 60 * 1000, poperation);
    } else {
        alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), 1 * 60 * 60 * 1000, poperation);
    }
}
public void registerAlarm()
{
AlarmManager AlarmManager=(AlarmManager)getSystemService(Context.ALARM\u服务);
Calendar alarmTime=Calendar.getInstance();
PendingEvent操作=PendingEvent.getService(this,0,getIntentForNotification(this),0);
alarmManager.cancel(取消操作);
int currentapiVersion=android.os.Build.VERSION.SDK\u int;
if(currentapiVersion
注意:我在应用程序中使用WAKE_LOCK权限