Android Création d'alarmes exactes sur toutes les versions Android


Exemple

Avec de plus en plus d'optimisations de la batterie dans le système Android au fil du temps, les méthodes du AlarmManager ont également considérablement changé (pour permettre une synchronisation plus souple). Cependant, pour certaines applications, il doit toujours être aussi précis que possible sur toutes les versions Android. L'assistant suivant utilise la méthode la plus précise disponible sur toutes les plates-formes pour planifier un PendingIntent :

public static void setExactAndAllowWhileIdle(AlarmManager alarmManager, int type, long triggerAtMillis, PendingIntent operation) {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
        alarmManager.setExactAndAllowWhileIdle(type, triggerAtMillis, operation);
    } else if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
        alarmManager.setExact(type, triggerAtMillis, operation);
    } else {
        alarmManager.set(type, triggerAtMillis, operation);
    }
}