Android TCP сети: AsyncTask против IntentService
Я создаю приложение для Android, которое должно взаимодействовать с сервером через TCP-сокеты. Я знаю, что работа в сети должна осуществляться из потока пользовательского интерфейса, но я не уверен, какой "подход к потокам" использовать: IntentService или AsyncTask. Я читал, что вы должны использовать сервисы, если вам нужно что-то постоянно выполнять в фоновом режиме, и использовать AsyncTask для одноразовых задач, но я нахожу это довольно расплывчатым. Для моего приложения мне нужно только общаться с сервером при запуске и когда пользователь нажимает какую-то кнопку, которая, кажется, одобряет AsyncTask (так как это кажется одноразовой задачей). Каковы преимущества и недостатки использования AsyncTask по сравнению с IntentService?
1 ответ
Я думаю, что вы не должны использовать асинхронную задачу, потому что асинхронные задачи выполняются в последовательном исполнении. Так что это замедлит работу вашего приложения, если пользователь вернется или нажмет несколько раз. Вы можете использовать поток с обработчиком или библиотеку шины событий. Или для сетевой задачи можно использовать Volly.