2015-08-21 4 views
-1

Я разрабатываю приложение для Android с большим количеством людей в своей команде, приложение имеет службы для совершения звонков на удаленную авизую, и вам нужно сделать эти вызовы в отдельном потоке с помощью Asynctask.Сервис внутри задачи? Или задача внутри службы

Теперь мне нужно сделать новую услугу, и, просматривая предыдущие, сделанные моими товарищами, я вижу, что один из них вызвал службу и внутри службы создал AsyncTask, в то время как другой помощник установил службу внутри AsyncTask.

Так что мне было интересно, какая у вас лучшая практика? Или оба пути правильны, и есть определенная причина для каждого пути?

ответ

3

Служба внутри AsyncTask кажется действительно странной!

Наиболее часто встречаются AsyncTasks в шаблоне Service или Thread-Handler, чтобы убедиться, что у вас есть «фоновый» поток для вызовов связи.

Но если задача вашей службы - просто выполнить вызов удаленного API и затем вернуть результаты вызывающему абоненту, я настоятельно рекомендую взглянуть на IntentService. Разница в том, что IntentService не нуждается в какой-либо AsyncTask, чтобы достичь этой «фоновой» (другой темы).

Проверить документ Google: http://developer.android.com/reference/android/app/IntentService.html

1
  1. если вы говорите службы, которая является одним из четырех компонентов Android. Служба может быть установлена ​​только системой Android. вы не можете указать его в AsyncTask. если вы обслуживаете экземпляр с помощью ключевого слова java new, экземпляр просто выполняет, как обычный класс Java, из-под контроля системы Android.
  2. вы можете запустить AsyncTask в сервисе, это общий дизайн.
+0

Я не использую компонент Service, называемый им сервисом, потому что это класс Java с методами, которые извлекают данные из внешней apis, поэтому я могу привести его в любом месте. – IBueno

+0

, поэтому нет проблем с этой «службой» в AsyncTask. AsyncTask используется для выполнения длительной блокировки. –

+0

Не было проблем, просто хотелось узнать, что было лучшим, потому что я видел, как это делалось в моем проекте. – IBueno

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