Я просматривал класс HandlerThread, так как изначально использовал простой поток и обработчик, но получил ошибку NetworkOnMainThreadException в android.
Кажется, я не понимаю, как я мог бы ввести такие вещи, как сокеты, в HandlerThread, что-то, где вы запускаете блокирующий код. Но вы не можете сделать это с помощью HandlerThread, поскольку вы не должны переопределять run, поскольку именно здесь находится цикл.
И я не могу вызвать HandlerThread через сообщения, чтобы начать прослушивание сокетов, поскольку затем он заблокирует любые другие переданные ему сообщения.
Итак, этот класс HandlerThread предназначен для неблокирующих задач? Поскольку я не могу понять, как я могу использовать такой поток, чтобы он мог прослушивать сокет, но мог обрабатывать запросы Например, когда я создавал обычный поток из основного потока пользовательского интерфейса
Я мог бы в обычном потоке вызвать Looper.prepare() и Looper.loop() при запуске, а затем поместить код между этими двумя строками (с проверкой для создания обработчика), но тогда у меня возникли проблемы с общением с этот новый поток, сообщения не передаются в поток.
Итак, как мне создать потоки, которые могут использовать обработчики для связи друг с другом и выполнять такие задачи, как использование сокетов.
Пожалуйста, мне не нужны комментарии об использовании ASyncTask, я хочу знать, как я могу сам использовать потоки, чтобы потоки могли взаимодействовать друг с другом