Периодическая задача держит wakelock Android 17: проверка alarm listener. Отделить область применимости от похожего симптома, провести один обратимый контроль и оформить timeline «schedule × device idle × callback × work start/end × wakelock held × reschedule» без лишних данных.
Где проходит граница симптома
Пользовательская боль: приложение удерживает процесс ради редкой задачи и расходует батарею, хотя работа нужна только в момент точного alarm. Проверка начинается с короткого scope statement: где проявляется, что должно происходить и что видно сейчас. Сохраните путь возврата. Не прикладывайте аккаунты, identifiers, токены, содержимое и необработанные логи. Граница поискового намерения: как заменить PendingIntent на OnAlarmListener setExactAndAllowWhileIdle Android 17. Соседние неисправности не включаются в этот материал и требуют отдельного evidence.
Что подтверждено официально
Android Developers сообщает: Android 17 добавляет setExactAndAllowWhileIdle variant с OnAlarmListener вместо PendingIntent как callback-механизм для снижения continuous wakelocks. Условия source важнее названия функции: target SDK, device support и documented fallback должны совпасть со сценарием. Если одно поле неизвестно, причина остаётся непроверенной, даже если внешний симптом похож. Проверяемый выход статьи — timeline «schedule × device idle × callback × work start/end × wakelock held × reschedule». Он нужен, чтобы официальный факт не превращался в универсальную догадку о любой похожей ошибке.
Какие данные нужны до проверки
Минимальный набор: alarm type, trigger elapsed time, listener registration lifetime, callback thread, wakelock duration и task completion. Проверьте, что rollback выполняется штатным способом. Не меняйте одновременно manifest, library version и test data. Перед опытом сформулируйте критерий pass, fail и stopped, чтобы не подгонять вывод. До опыта сформулируйте безопасный stop: не тестировать критичный будильник и не создавать повторяющийся exact alarm; остановиться, если callback теряется после process death. Если он уже наступил, не собирайте дополнительные данные ради полноты отчёта.
Обратимый контроль
Практический шаг: в debug-профиле поставить один alarm на короткий интервал, отпустить лишний wakelock и проверить callback и завершение работы по timestamps. Один короткий run задаёт baseline, второй меняет ровно один фактор, третий подтверждает rollback. Если B не отличается от A, ветка не подтверждена; это нормальный результат, а не повод добавлять ещё настройки. Контроль не должен выходить за исходный scope: alarm type, trigger elapsed time, listener registration lifetime, callback thread, wakelock duration и task completion. Любой дополнительный параметр переносится в новую отдельную проверку.
Как читать полученный результат
Рабочий артефакт: timeline «schedule × device idle × callback × work start/end × wakelock held × reschedule». Заполните baseline, controlled change и rollback отдельными строками. Статус выбирается из confirmed here, not reproduced или stopped. Локальный pass не доказывает поддержку всех моделей и версий. Сопоставляйте результат с точным действием: в debug-профиле поставить один alarm на короткий интервал, отпустить лишний wakelock и проверить callback и завершение работы по timestamps. Совпадение во времени без controlled change не считается причинной связью.
Стоп-линия и пакет поддержки
Критерий остановки: не тестировать критичный будильник и не создавать повторяющийся exact alarm; остановиться, если callback теряется после process death. Для issue достаточно model family без serial, build, app/library version, три шага, expected/actual и официальный URL. Удалите contacts, paths, IP/MAC, tokens, media и full dumps; неподдающееся очистке вложение не отправляйте. В support package назовите пользовательскую боль без личных деталей: приложение удерживает процесс ради редкой задачи и расходует батарею, хотя работа нужна только в момент точного alarm. Остальные сведения добавляйте только если они меняют воспроизводимость.
Материал подготовлен редакцией VOne с помощью ИИ; технические утверждения постатейно сверены с указанными официальными источниками 28 августа 2026 года.
Источники и проверка
- Android Developers Blog — The Third Beta of Android 17 проверено 2026-08-28
- Android Developers Blog — Android 17 is here проверено 2026-08-28
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.