Задача Thread vs Handler vs Async для сокетов в Android?

Я собираюсь написать Android серверный сокет для подключения к Windows клиенту.

Какой из них лучше между Thread, Handler и Async task?


person Ahmed Ali    schedule 25.08.2016    source источник


Ответы (1)


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

Класс Handler не предназначен для запуска асинхронных задач (таких как Thread и AsyncTask), экземпляр Handler используется для обеспечения связи между двумя потоками, например, если вы решите использовать Thread вместо AsyncTask, класс Handler будет помочь вам с обменом данными между вашим UIThread и потоком, который обрабатывает сокет.


Теперь AsyncTask идеально подходят для работы в качестве Клиента. Если вам нужно открыть сокет сервера, вы должны забыть об этом и попытаться взглянуть на Service и выбрать между Service и Thread.

Почему?

Потому что AsyncTask предназначены для выполнения определенной работы за относительно короткое время. Чтобы открыть сервер, который должен оставаться открытым (возможно) долгое время, это не тот класс, который вам нужен.

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

person fredmaggiowski    schedule 25.08.2016
comment
Не знаю, почему я не подумал об услугах, но спасибо, попробую воспользоваться - person Ahmed Ali; 25.08.2016
comment
@AhmedAli Я связал документацию AsyncTask и Service. - person fredmaggiowski; 25.08.2016
comment
Спасибо, посмотрю - person Ahmed Ali; 25.08.2016