Я пытаюсь вызвать BroadcastReceiver, когда экран включен. В моем AndroidManifest.xml я указал:
Однако кажется, что получатель никогда не вызывается (точки останова не стреляют, проигнорированные операторы журнала). Я выгрузил SCREEN_ON для BOOT_COMPLETED для теста, и это действительно становится вызванным.
Это находится в 1.6 (уровень 4 SDK) проект.
Google Code Search показал это, я загрузил проект и синхронизировал его, преобразовал его для работы с последними инструментами, но он также не может прервать то событие.
Это, возможно, больше не поддерживается?
Ранее я смог прервать это событие успешно с вызовом к Context.registerReceiver () как так
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// ...
}
}, new IntentFilter(Intent.ACTION_SCREEN_ON));
Однако это было выполнено долго живущим Сервисом. При следовании мудрому совету от CommonsWare я выбрал пытаться удалить долго живущий Сервис и использовать различные методы. Но я все еще должен обнаружить экран прочь и на событиях.
Следуя мудрому совету CommonsWare , я решил попытаться удалить долгоживущие Обслуживание и использование различных методов.
На самом деле, я считаю, что мой совет был скорее голубым ...: -)
Но мне все еще нужно обнаруживать события включения и выключения экрана .
Есть определенные события, для которых Android не хочет запускать новые процессы, поэтому устройство не становится слишком медленным из-за того, что все виды вещей должны выполняться одновременно. ACTION_SCREEN_ON
- одно из таких. См. Этот предыдущий вопрос для получения голубых советов по этой теме.
Итак, вам нужно спросить себя: «Я, действительно ли мне нужно контролировать эти события?». Основная команда разработчиков Android хотела бы, чтобы ваш ответ был «нет».