2016-11-04 3 views

ответ

2

Да, это хорошая практика, и вы должны сделать это, когда эта служба должна выполнить некоторую работу в течение неопределенного времени. Если вы хотите сделать какое-то одно действие, вместо этого используйте IntentService. Служба также может быть привязана к любому другому компоненту (Activity, another Service) и запускаться в одно и то же время, поэтому вы можете работать в фоновом режиме, даже когда приложение свернуто или закрыто. Представьте себе, вам нужно выполнить некоторые длительные операции в течение неопределенного времени и взаимодействовать с пользовательским интерфейсом с этими операциями. Для этого создайте службу, запустите ее и привяжите к ней в одно и то же время. Вы получите интерфейс для управления этим сервисом из ServiceConnection во время привязки. Служба может выполнять длительную работу. Дело здесь в том, что различные Activitis могут связываться с этой услугой и представлять операцию по-разному. Intent-сервис, с другой стороны, запускает собственный фоновый поток по умолчанию, но он автоматически останавливается, когда работа над этим потоком завершена.

+0

Я бы добавил информацию о том, что 'Сервис' работает в потоке, который вы запускаете. Таким образом, вы можете создать Thread только для запуска 'Service', и он запускается на отдельном потоке, чем' main'. –

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