2016-02-11 3 views
0

Я использую службу для выполнения длительной работы. Я связываю службу в действии, чтобы инициировать процесс. Ниже приведен код, который связывает службу.Путаница в обслуживании Переплет и разблокировка Android

val intent = Intent(context,SaveSessionService::class.java) 
context.bindService(intent, mSaveSessServiceConnection, AppCompatActivity.BIND_AUTO_CREATE) 

После завершения работ на заднем плане, я пытаюсь остановить обслуживание. Я использую stopService(). Но я получаю сообщение об ошибке подключения к сети. После некоторого чтения в SO Questions выяснилось, что когда служба связана с BIND_AUTO_CREATE, мы не можем остановить службу с помощью stopService.

Мой вопрос: как я могу подключиться к службе, так как я также прочитал, что вызов startService для продолжительного обслуживания также не рекомендуется. Лучше ли использовать IntentService (я не думаю, что только сервис должен использоваться для долговременной задачи в соответствии с документацией)?

Я не могу ссылаться на деятельность, как только я перейду на службу. Я должен быть в состоянии остановить обслуживание от самого сервиса.

Итак, с этим прецедентом, который лучше, начать сервис с помощью startService или использовать IntentService?

ответ

0
  1. Если вы запустили услугу с bindService(), то он должен автоматически остановится после вызова unbindService(), если нет других привязок.

  2. Если вы начинаете услугу с startService(), то вы должны остановить ее с помощью stopService() или услуга может позвонить stopSelf() после того, как это будет сделано. Это часто предпочтительный подход.

  3. Если было бы лучше использовать IntentService, зависит от того, какую функциональность предоставляет услуга - вопрос не содержит никаких подробностей об этом.

  4. Как уже упоминалось ранее, вы можете остановить службу от самого сервиса с stopSelf(), как уже упоминалось ранее

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

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