Как получить событие в сервисе при касании экрана? - PullRequest
2 голосов
/ 13 октября 2010

Я бы хотел реализовать в Android сервис, который должен отслеживать время, прошедшее с момента, когда пользователь не касался экрана.Например, пользователь открывает Интернет или Adobe Reader, начинает читать и больше не взаимодействует с сенсорным экраном.Я хочу, чтобы мой работающий сервис знал время, так как пользователь не касался экрана.Как я могу это сделать ?Я думаю о двух подходах: 1. Лучший: по истечении времени (сервис настроен на то, чтобы через 2, 5 или 10 минут проверять, не коснулся ли экран), сервис запрашивает какой-то системный объект для этого.Информация.2. Не так уж и лучше (думаю, это может повлиять на производительность). При каждом касании экрана сервис, на который нужно получать уведомление.

Пожалуйста, помогите.Спасибо.

Ответы [ 2 ]

3 голосов
/ 13 октября 2010

Как я могу это сделать?

Вы не делаете.

По истечении времени (услуга устанавливается после 2 или 5или 10 минут, чтобы проверить, касался ли экран или нет) служба запрашивает у некоторого системного объекта эту информацию.

Не существует "системного объекта", который бы сообщал вам, когда пользователь последний раз касался экрана.

Не так уж и лучше (я думаю, это может повлиять на производительность). При каждом касании экрана сервис, на который нужно получать уведомление.

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

1 голос
/ 13 октября 2010

Вы не можете сделать это, потому что оно требует доступа к данным, которые приложение может использовать для очистки данных из других частей системы, к которым у него иначе не было бы доступа.Это проблема безопасности;API не предоставляет средства для этого, чтобы избежать гнусного использования.Пользователь должен будет использовать измененное ПЗУ.

В любом случае прослушиватели событий привязаны к объектам просмотра ;Объекты View вашего собственного приложения - это единственное, что вы можете наблюдать за сенсорными событиями.Кроме того, пока мы это делаем - Сервисы не предназначены для взаимодействия с пользовательским интерфейсом (хотя приложения могут отправлять им сигналы и данные во время работы).

...