2014-12-27 2 views
4

Я использую этот код для установки сигнализации в Android KitKat и леденец:AlarmManager не срабатывает по времени в Android Lollipop

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
    Intent i = new Intent(AlarmService.this, Reciver.class); 
    PendingIntent pi = PendingIntent.getBroadcast(AlarmService.this, 1201, i, PendingIntent.FLAG_UPDATE_CURRENT); 
    Calendar c = Calendar.getInstance(); 
    c.set(Calendar.HOUR_OF_DAY, 9); 
    c.set(Calendar.MINUTE, 0); 
    c.set(Calendar.SECOND, 0); 
    am.setExact(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi); 

этот код хорошо работает на Android KitKat, но на Android Lollipop своих пожаров с 10 или 5 минут задержки.

ответ

7

Это известная ошибка в Android Lollipop, о которой сообщают несколько других пользователей на официальном трекере Android. Нет немедленного решения этой проблемы, но вы можете получить обновления по этой проблеме: https://code.google.com/p/android/issues/detail?id=82001

+0

, но некоторые приложения работают следующим образом: [link] (http://cafebazaar.ir/app/com.hrmmrh. taghvim.aseman /? l = fa) –

+1

Я никогда не говорил, что setExact() не работает полностью, я просто сказал, что в Android 5.0 есть известная ошибка, которая setExact() не создает триггер в точное время, когда был установлен будильник задавать. Имейте в виду, что уже есть 3 версии Lollipop (5.0, 5.0.1 и 5.0.2), поэтому эта ошибка может быть специфичной только для одного или двух из них. – mittelmania

+0

Кажется, что затронуты только Android 5.0 и Android 5.0.1. Android 5.0.2 changelog говорит, что он исправлен http://changelog.to/aosp/aosp-LRX22C-LRX22G.html Например, на устройстве CyanogenMod 12 (с Android 5.0.2) он работает как шарм – Sarbyn

Смежные вопросы