gwintu
Wątek jest równoległy jednostką wykonania. Ma własny stos wywołań. Istnieją dwie metody implementacji wątków w aplikacjach.
Jednym z nich jest udostępnienie nowej klasy, która rozszerza wątek i przesłania jego metodę run() . Drugi zapewnia nową instancję wątku za pomocą obiektu Runnable podczas jej tworzenia. Wątek może zostać wykonany przez nazywając jego metodę "start". Możesz ustawić "Priorytet" wątku przez , wywołując jego metodę "setPriority (int)".
Wątek może być użyty, jeśli nie masz wpływu na część interfejsu. Dla przykładu, dzwonisz do niektórych usług internetowych lub pobierasz dane, a po pobraniu wyświetlasz je na swoim ekranie. Następnie musisz użyć Handler'a z wątkiem, co sprawi, że twoja aplikacja będzie trudna do obsłużenia wszystkich odpowiedzi z wątków.
Program obsługi umożliwia wysyłanie i przetwarzanie komunikatów i obiektów wykonanych związanych z właściwością MessageQueue wątku. Każdy wątek ma kolejną wiadomość o kolejce od . (Podobnie jak lista czynności do wykonania), a wątek pobierze każdą wiadomość i przetworzy ją, dopóki kolejka komunikatów nie będzie pusta. Tak więc, gdy Handler komunikuje się, wysyła wiadomość tylko do wątku wywołującego i czeka na przetworzenie.
Jeśli używasz wątki Java to trzeba obsłużyć następujące wymagania w swoim własnym kodzie:
synchronizacja z głównego wątku, jeśli zakładać z powrotem wyniki do interfejsu użytkownika Nie Domyślne anulowania wątku No domyślny wątek łączenie ma domyślnego do obsługi zmian konfiguracyjnych w Androidzie
AsyncTask
AsyncTask umożliwia prawidłowe i łatwe korzystanie z interfejsu th czytać. Ta klasa umożliwia wykonywanie operacji w tle i publikowanie wyników w wątku UI bez konieczności manipulowania wątkami i/lub procedurami obsługi. Zadanie asynchroniczne jest definiowane przez obliczenia działające na wątku tła o numerze , którego wynik jest publikowany w wątku interfejsu użytkownika.
AsyncTask przejdzie 4 następujących etapów:
onPreExecute()
Wykonano wątku UI przed zadaniem jest wykonywany
doInbackground (Params ..)
Wywołuje się na wątku w tle natychmiast po zakończeniu operacji onPreExecute() .
onProgressUpdate (Progress ..)
Wykonano wątku UI po wywołaniu publishProgress (Progress ...).
onPostExecute (Wynik)
Wykonano wątku UI po zakończeniu obliczeń tła.
Dlaczego powinieneś używać AsyncTask?
Łatwy w użyciu dla wątku interfejsu użytkownika. (Tak, użyj go, gdy wątek wywołujący jest wątkiem UI ).
Nie trzeba manipulować uchwytami.
Zobacz http://stackoverflow.com/a/9800870/2617699 – JavaDM
@ webaldo.at I reffered to, tutaj podali opis i różnicę między Asynctask i Thread.I chcesz wiedzieć, który przypadek na przykład połączenie sieciowe, plik odczytać, co używam ?. – Ram
Skrócone: Wątek -> Brak dostępu do nici interfejsu użytkownika || Asynctask -> Dostęp warunkowy do wątku UI – JavaDM