Мне тоже интересно об этом.
Хотя это и не обязательно ответ, я провел некоторое исследование служб (чтобы поймать громкость печати, которую я предполагаю) и BroadcastReceivers (onReceive () получит намерение для ACTION_SCREEN_OFF и, вероятно, установит флаг для отключения экрана) , Я думаю, что запускаю службу, когда экран выключается, и убиваю ее, когда экран включается, но я не знаю, как объединить onKeyLongPress и службу.
Последовательность, с которой я сталкиваюсь, выглядит следующим образом: Экран выключается -> BroadcastReceiver получает эту команду и запускает службу для наблюдения за громкостью нажатия -> принимает громкость нажатия и выполняет свою логику -> убивает службу, если экран включается.
Я нашел сайт, который, по-видимому, обрабатывает включение / выключение экрана и в котором есть пример действия и службы, но я пока не могу что-то собрать:
http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/
Одна вещь, о которой я беспокоюсь, когда пользуюсь услугой, это время работы от батареи и время обработки, но это будет испытание в будущем. Я надеюсь, что смогу смягчить это, убив службу, когда экран включится. Я постараюсь обновлять эту запись по мере продвижения.
Удачи!