2016-08-08 5 views
2

У меня есть служба, реализованная в модуле A. Теперь приложения B и C используют эту библиотеку для связывания с сервисом с использованием bindService(service, connection, BIND_AUTO_CREATE), но он всегда создает новый экземпляр службы. Я использую Messenger для возврата связующего на объекты соединения. Если я использую AIDL, то как можно использовать один и тот же экземпляр службы? Я прочитал и попробовал почти все ответы stackoverflow, связанные с этим вопросом. Но все же я не могу достичь того, что я объяснил выше.Android привязывается к существующей службе в нескольких приложениях

Манифест этой службы определен внутри модуля A с полным именем процесса для атрибута процесса и экспортирован, включен, имеет значение true.

<service 
     android:name="io.packagename.LocationService" 
     android:enabled="true" 
     android:exported="true" 
     android:permission="android.permission.ACCESS_FINE_LOCATION" 
     android:process="io.packagename.locationService" /> 

LocationService-Класс:

class LocationService extends Service { 
     IncomingHandler handler = new IncomingHandler() 
     Messenger messenger = new Messenger(handler) 

     public IBinder onBind(Intent intent) { 
      Log.d(TAG, "onBind") 
      return messenger.binder 
     } 
     } 

Любая помощь очень ценится.

+0

отправьте свой класс обслуживания – Lino

+0

@Lino У него мало кода, но в любом случае его добавили. Спасибо –

+0

спасибо. Как вы проверяете, что создано больше экземпляров службы? – Lino

ответ

0

Цитируя docs:

Как обсуждалось в документе Services, вы можете создать службу, которая является одновременно начало и связанно. То есть услугу можно запустить с помощью , вызывая startService(), что позволяет службе работать неограниченно, , а также позволяет клиенту связываться с сервисом, вызывая bindService().

Пример:

Например, музыкальный проигрыватель может оказаться полезным, чтобы его обслуживание на неограниченном срок, а также обеспечивает связывание. Таким образом, активность может начать обслуживание, чтобы воспроизвести какую-либо музыку, и музыка продолжает играть , даже если пользователь покидает приложение. Затем, когда пользователь возвращается в приложение, эта активность может привязываться к службе до , чтобы восстановить управление воспроизведением.

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

+0

Это все действия. Я попросил поделиться им через приложения. –

 Смежные вопросы

  • Нет связанных вопросов^_^