Работает ли служба, запущенная в результате своей деятельности, в новой ветке? - PullRequest
1 голос
/ 08 июля 2011

Первый запуск сервиса из своей деятельности, например

this.startService(new Intent(this,UpdaterService.class));

работает ли этот сервис в новом потоке? И если я возьму большую рабочую нагрузку на этот сервис (без помощи ниток), андроид покажет силу закрытия для этого приложения

А чем отличается класс AsyncTask от класса Thread ?? какой использовать где?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Руководство разработчика Android гласит :

  • A Service - это не отдельный процесс.Сам объект Service не подразумевает, что он работает в своем собственном процессе;если не указано иное, он выполняется в том же процессе, что и приложение, частью которого он является.
  • A Service не является потоком.Это не средство само по себе выполнять работу из основного потока (во избежание ошибок Application Not Responding).
1 голос
/ 08 июля 2011

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

...