как правильно запустить сервис и сохранить его? - PullRequest
0 голосов
/ 02 августа 2011

Я знаю, что есть другой вопрос на ту же тему, но я не нашел ответа на свои вопросы.

Моя цель - иметь службу, которая работает в фоновом режиме в качестве слушателя местоположения, ионо не будет остановлено, когда приложение остановлено (либо убийцей задач).

В настоящее время я запускаю службу с помощью startService (Intent), если она еще не запущена, и привязываю ктеперь с помощью bindService (Intent, ServiceConnection, 0).

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

Вторая проблема заключается в том, что если я убиваю свое приложение с помощью расширенного средства запуска задач, оно также убивает и мою службу, хотя на странице «Служба» говорится, что служба будет остановлена, когда не останется ни одного связанного клиента, и если у stopService () или stopSelf ()был назван.

Ответы [ 2 ]

1 голос
/ 02 августа 2011

, и он не будет остановлен при остановке приложения (либо убийцей задач).

К счастью, это невозможно.Если ваш пользователь желает, чтобы ваша служба была остановлена, он может остановить службу через программу-убийцу или экран «Управление службами» в настройках.

В настоящее время я запускаю службу с помощью startService (Intent), еслиесли служба еще не запущена и привязка к ней осуществляется с помощью bindService (Intent, ServiceConnection, 0).

Обычно вы используете только один или другой, а не оба.

Вторая проблема заключается в том, что если я убиваю свое приложение с помощью расширенного средства убийцы задач, оно также убивает и мою службу, хотя на странице «Служба» говорится, что служба будет остановлена, когда не осталось связанных клиентов и если stopService () илиВызов stopSelf ().

Нет, потому что вы позвонили startService() в дополнение к bindService().

0 голосов
/ 02 августа 2011

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

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