Службы Android: привязка по требованию или привязка к #onCreate () - PullRequest
5 голосов
/ 09 февраля 2012

У нас есть Сервис, который заботится о нескольких вещах в одном из наших действий. Мы довольно плохо знакомы с Android и задаемся вопросом, каков идеальный момент для привязки к этому сервису. Мы нуждаемся в услуге только для половины взаимодействий, которые возможны через действие. Поэтому мы должны согласиться на одну из двух возможностей:

  • привязка к Сервису, когда он нам действительно нужен, что добавило бы значительную сумму накладных расходов при реализации
  • привязка к Сервису в методе onCreate () без дополнительных затрат на проверку работоспособности службы, привязку к ней по запросу, возможно, кеширование выполненных запросов и т. Д.

Каким был бы здесь «путь андроида»? Является ли работающая служба большой нагрузкой или она должна запускаться только тогда, когда это действительно необходимо? Сам сервис действительно легкий.

1 Ответ

1 голос
/ 19 февраля 2012

Лично я предпочитаю вызывать bindService () в onCreate (), а после его завершения вызывать unbindService () в onDestroy ().Причиной этого является bindService () на самом деле асинхронный вызов.который не был хорошо документирован в API.Когда вы вызываете bindService (), ссылка на объект связующего, который вы получаете внутри метода обратного вызова ServiceConnection.onServiceConnected (), не создается сразу же, а между вызовом bindService () и до того, как объект связывателя будет создан и готов к использованию, существует задержка,поэтому наиболее подходящим местом для его вызова является onCreate (), так как мы обычно не выполняем много тяжелых операций и на этом этапе необходимо немедленно использовать объект связывания.

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