Привязать к Сервису, если существует - PullRequest
4 голосов
/ 17 февраля 2012

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

1 Ответ

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

Это просто достигается, например, передачей 0 в последнем параметре #bindService(Intent, ServiceConnection, int).

Например,

bindService(new Intent(this, MrMeService.class), new ServiceConnection(){
        public void onServiceDisconnected(ComponentName name) {
            System.out.println("Service disconnected");
        }
        public void onServiceConnected(ComponentName name, IBinder service) {
            System.out.println("Service connected");
        }
    }, 0);

Вызов #bindService(..) вернет true но служба не фактически запускается, и ваше подключение к службе не будет запускать до тех пор, пока кто-то не запустит службу, например, с помощью #startService(Intent).По крайней мере, так работает на ICS и Gingerbread.

...