2014-04-16 30 views

Odpowiedz

13

A Looper zarządza zadaniami, które wątek będzie działał. Umieszcza je w kolejce, a następnie wątek wykonuje następne zadanie w linii. Looper jest związany z określonym wątkiem.

An Executor hermetyzuje zarządzanie i dystrybucję zadań do różnych wątków. Jeśli masz stały rozmiar wątku równy 1, to przypuszczam, że byłby on podobny do Loopera, ponieważ będzie on ustawiał kolejkę do pracy dla tego wątku. Jeśli masz plik wątków o rozmiarze> 1, to będzie on w stanie przekazać zadanie do następnego dostępnego wątku do wykonania pracy lub innymi słowy, rozdzieli zadania między wszystkie wątki.

edit: Zalecana literatura: http://developer.android.com/reference/java/util/concurrent/package-summary.html

Komornicy są bardziej elastyczne. W przypadku Androida, jedyny czas, w którym naprawdę używam Looper'a, to próba uczynienia Handlera komunikacją z głównym wątkiem z wątku tła (który mógłby nawet być w ExecutorService). Na przykład:

Handler mainThreadHandler = new Handler(Looper.getMainLooper()); 
mainThreadHandler.post(new Runnable...); //runs on main thread 
+0

tylko zobaczył swoją stronę. byłoby miło, gdybyś zamieścił 3 pytania na temat wywiadu androidowego na – user3430459

+0

@ user3430459 Zdecydowanie, gdy tylko dostanę trochę czasu, aby to zrobić. :) –

+0

@ trevor-e Myślę, że zamierzałeś napisać "ExecutorThreadPool" zamiast "Executor". ExecutorThreadPool zarządza i dystrybuuje zadania do łączonych wątków, o ile są one dostępne, jak wyjaśniono. Executor jest obiektem używanym do wykonywania zadań Runnable. – user3144836

Powiązane problemy