Android: запуск службы, когда настройки даты и времени изменяются пользователем - PullRequest
0 голосов
/ 22 марта 2012

Я внедряю менеджер сессий для моего приложения. Каждый раз, когда действие возобновляется, он проверяет, активен ли сеанс. Если это так, активация запускается, иначе она отображает другое действие, аутентифицирующее пользователя. Всякий раз, когда действие приостанавливается, оно устанавливает текущее время в диспетчере сеансов. Сеанс активен, когда выполняется текущее действие или последняя установленная в паузе метка времени не старше x минут.

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

Я хочу решить эту проблему с помощью службы, которая запускается при изменении настройки даты и времени (я знаю, что есть намерения, описывающие это событие) и сбрасывает сеанс. Его нужно запускать только в том случае, если приложение все еще работает, потому что менеджер сеансов будет статическим классом, который теряет состояние после завершения процесса.

Как мне создать такой сервис?

1 Ответ

1 голос
/ 22 марта 2012

Вам не нужен сервис для этого. Вы должны иметь возможность реализовать BroadcastReceiver в манифесте для ACTION_TIME_CHANGED (и, возможно, ACTION_TIMEZONE_CHANGED, поскольку я не уверен, повлияет ли это на вашу сессию). В onReceive() проверьте и проверьте, есть ли у вас сеанс. Если вы этого не сделаете, то пользователь изменил время, когда ваше приложение не было запущено, и вы в порядке. Если у вас есть сеанс, вы можете предпринять все необходимые шаги на данный момент (например, аннулировать сеанс).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...