onBind и Сервис соединяются? - PullRequest
       15

onBind и Сервис соединяются?

0 голосов
/ 29 сентября 2011

Кажется, после небольшой привязки к удаленному сервису задержка небольшая.OnServiceConnection работает нормально.Обвязка работает нормально.Я думаю, что есть проблема с задержкой.Например, в методе onCreate () моей активности, если, например, сказать:

  • Обратите внимание, что mConnection onServiceConnect () правильно устанавливает mRemoteServiceStub.

    bindService(mIntent, mConnection, Context.BIND_AUTO_CREATE); mRemoteServiceStub.doThis();

Если я запускаю это, я получаю ошибку, которая говорит, что никакого соединения еще не существует.Однако, если я помещаю mRemoteServiceStub.doThis () в методе в onClickListener, он работает отлично.Таким образом, либо соединение не будет установлено до тех пор, пока не завершится выполнение операций onCreate, либо не произойдет задержка при установлении соединения.

Кто-нибудь знает?

И есть ли способ отложить запуск приложения до тех пор, пока соединение не будет установлено таким образом, я могу использовать соединение сразу без триггера.(Моя реализация верна)

1 Ответ

2 голосов
/ 29 сентября 2011

Если я запускаю это, я получаю сообщение об ошибке, что соединение еще не существует.

bindService() не является синхронным. Вы не можете использовать свою заглушку, пока onServiceConnected() не будет вызван для вашего объекта ServiceConnection, и вы не создадите прокси на стороне клиента из IBinder.

И есть ли способ отложить запуск приложения до тех пор, пока соединение не будет установлено таким образом, я могу использовать соединение сразу без триггера.

Поместите свою зависящую от связывания логику в onServiceConnected().

...