Как я могу записать событие SCREEN_OFF / ON, когда приложение простаивает?

Для подтверждения концепции мне нужно уметь фиксировать, становится ли телефон интерактивным, и наоборот. Пока что пробовал следующие методы:

  1. с BroadcastReceivers, улавливающими события SCREEN_OFF и SCREEN_ON, но это работает только когда приложение запущено. Если я попытаюсь добавить его в манифест, я не смогу записывать события, если приложение не запущено (политики Android)

  2. Планирование заданий. С помощью этого метода, вместо того, чтобы приписываться событиям, я могу проверить состояние экрана в момент выполнения задания. Проблема? для устройств Nougat минимальное периодическое время, которое я могу указать для запуска задания, составляет каждые 15 мин., что слишком много для моего доказательства концепции.

Я еще не пробовал сервисы, так как прочитал в документации, что это может быть не лучший способ сделать это. Цитата из документации Android:

You should avoid using started services that run perpetually or perform periodic work, since they continue to use device resources even when they are not performing useful tasks. Instead, you should use other solutions that this page describes, and that provide native lifecycle management. Use started services only as a last resort. The Android platform may not support started services in the future

Я неправильно смотрю на это? Вы, ребята, посоветуете обратиться за сервисом (в этом случае я бы предпочел использовать фоновый сервис).

вы должны поставить проверки на метод жизненных циклов активности, чтобы получить его состояние. Предложенная вами идея немного сложна.

Killer 10.03.2018 12:06

Спасибо за комментарий @killer, но я не знаю, что вы имеете в виду под жизненными циклами активности. Не могли бы вы уточнить?

danimart 10.03.2018 12:46
1
2
45
0

Другие вопросы по теме