Моя задача состоит в том, чтобы вызвать службу для каждого 24 часов и выше на основе настроек ...Android Manager Alarm непоследовательно 4.4.x.What является альтернативным решением для поддержки minSDKVersion 9 и targetSdkVersion 21
Следующий код отлично работает в течение 5 минут, 2 часа, но не работает в течение долгих часов, таких как 24 часа и выше в Moto E 4.4.4, samsung S4 4.4.2 и Nexus5 4.5 ..
Следующий код даже не работает в течение 5 минут в Xiaomi Mi3 4.4.2, также аварийный сигнал отсутствует в аварийной свалке.
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
am2.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 86400000, pi);
} else {
am2.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 86400000, pi);
}
Мои Строительные настройки: - андроид: minSdkVersion = "9" андроид: targetSdkVersion = "21" с использованием 4.4.2 SDK для создания APK ...
После проверки ссылок API я пришел узнать, что сигнал тревоги является несовместимостью с Android 4.4x и выше ... Как сделать точную сигнализацию совместимой с minSdkVersion 9-19 и выше. Я трачу больше времени на анализ и отладку, так как я должен ждать 24 часа и более, чтобы проверить звонок службы сигнализации. указательных или решения было бы очень полезно, и
" https://developer.android.com/about/versions/android-4.4.html http://developer.android.com/reference/android/app/AlarmManager.html Примечания: Менеджер сигнализации предназначен для случаев, когда вы хотите, чтобы ваш код запуска приложения в определенное время, даже если приложение не в настоящее время работает. Для обычных операций синхронизации (тиков, тайм-аутов и т. д.) проще и эффективнее использовать Handler. Примечание: доставка с помощью API 19 (KITKAT) неточна: ОС сбрасывает аварийные сигналы, чтобы минимизировать пробуждения и использование батареи. Появились новые API-интерфейсы для поддержки приложений, требующих строгих гарантий доставки, см. setWindow (int, long, long, PendingIntent) и setExact (int, long, PendingIntent). e targetSdkVersion ранее, чем API 19, будет продолжать видеть предыдущее поведение, при котором все аварийные сигналы доставляются точно по запросу. "