Как я могу перезапустить службу приложения, если пользователь остановил (убил) ее из настроек? - PullRequest
3 голосов
/ 23 августа 2011

Каким будет способ перезапустить мой сервис, если неавторизованный человек убьет его из настроек устройства? Когда авторизованный пользователь хочет остановить службу, я предоставляю пользовательский интерфейс, для которого требуется пароль.

Ответы [ 3 ]

5 голосов
/ 23 августа 2011

Предложите способ перезапустить мой сервис, когда пользователь (неавторизованный пользователь) убьет его из настроек устройства

Они не являются "неавторизованными".Это их устройство, а не ваше.

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

Для остановки службы я предоставляю пользовательский интерфейс, для которого требуется пароль

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

3 голосов
/ 23 августа 2011

Боюсь, вы собираетесь бороться с системой, чтобы попытаться достичь этого. Эта система была создана для использования на устройствах, принадлежащих средним потребителям. Если пользователь хочет, чтобы ваше приложение остановилось, вы можете сделать немного, чтобы запретить ему останавливать его. Даже если вам удастся придумать что-то, что будет эффективно при перезапуске службы, могут существовать приложения Task Killer, которые поймают вас и начнут автоматически выключать вас при каждом перезапуске.

Суть в том, что это их устройство, они могут выбирать, что работает, а что нет. Я понимаю, что есть совершенно разумные варианты использования пароля, чтобы что-то остановить, но его нужно обрабатывать на системном уровне, чтобы он был эффективен на 100%.

0 голосов
/ 17 февраля 2012

для перезапуска любой службы, которая завершается во время выполнения, затем используйте

   public int onStartCommand(Intent intent,int flags,int startId)
    {
       .........//your service coding //
       ........................
       return Service.START_STICKY
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...