Если используется класс AlarmManagerCompat библиотеки поддержки android.support.v4.app.AlarmManagerCompat, можно ли вызывать Alarm с помощью приведенного ниже единственного синтаксиса (который будет применим ко всем устройствам, независимо от установленного уровня API,Библиотека поддержки, обеспечивающая обратную совместимость для всех предыдущих версий API):
alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
Или еще нужно сначала проверить уровень API, установленный на устройстве, а затем вызвать Alarm, используя соответствующий синтаксис на основеиспользуемый уровень API, например:
if (VERSION.SDK_INT >= 23) {
alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntentMain);
// Adding manual re-scheduling for repetition
}
else if (VERSION.SDK_INT >= 19) {
alarmMgr.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntentMain);
// Adding manual re-scheduling for repetition
}
else if (VERSION.SDK_INT <= 18) {
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 60 * 60 * 24 * 7 * 1000, alarmIntentMain);
}
Насколько я понимаю, библиотеки поддержки имеют возможность использовать более поздние классы со старыми версиями API без необходимости писать разные синтаксисы.одной и той же функциональности для разных API.Правильно ли мое понимание?
Спасибо.J