Разглеждах класа HandlerThread, тъй като първоначално използвах проста нишка и манипулатор, но дойде cropper с NetworkOnMainThreadException в android.
Изглежда не мога да разбера как бих могъл да въведа неща като сокети в HandlerThread, нещо, където бихте поставили блокиращия код в изпълнение. Но не можете да направите това с HandlerThread, тъй като не трябва да отменяте run, тъй като там е looper.
И не мога да извикам HandlerThread чрез съобщения, за да започна да слушам сокети, тъй като тогава ще блокира всички други съобщения, предадени към него.
Така че този клас HandlerThread предназначен ли е за задачи, които не са блокиращи? Тъй като изглежда не мога да разбера как мога да използвам такава нишка, така че да може да слуша в сокет, но да може да обработва заявки Както когато създавах нормална нишка от основната нишка на потребителския интерфейс
Бих могъл в нормална нишка да извикам Looper.prepare() и Looper.loop() в изпълнение, след което да поставя кода между тези два реда (с проверка за създаване на манипулатора), но след това имам проблеми с комуникацията с тази нова нишка, съобщенията не се предават в нишката.
И така, как да създам нишки, които могат да използват манипулатори, за да комуникират помежду си и да изпълняват задачи като използване на сокети.
Моля, не търся да използвам ASyncTask коментари, искам да знам как мога сам да използвам нишки, така че нишките да могат да комуникират помежду си