Android: Как остановить службу, запущенную с помощью bindService () с параметром BIND_AUTO_CREATE?

Я запускаю службу, используя:

private ServiceConnection _serviceConnection = new ServiceConnection() {...}
bindService(new Intent(this, MainService.class), _serviceConnection, Context.BIND_AUTO_CREATE);

Я хочу «перезапустить» службу. (Давайте не будем спорить, почему я хочу это сделать) Я делаю это следующим образом:

unbindService(_serviceConnection);
// Do some initialization on service
bindService(new Intent(this, MainService.class), _serviceConnection, Context.BIND_AUTO_CREATE);

Я заметил, что служба не умирает (onDestroy не запускается), пока я не вызову следующий bindService (); Итак, некоторая статическая инициализация, которую я сделал для службы, была очищена реализацией onDestroy ().

Вопрос: Как убедиться, что unbindService () остановит службу (запустит onDestory ()), чтобы я мог выполнить инициализацию после и повторно запустить bindService ()?

6
задан jclova 18 November 2010 в 16:25
поделиться