Chciałbym poprosić kogoś o wyjaśnienie mi proszę, jakie są główne różnice między HandlerThread i IntentService i jakie są główne scenariusze użycia?HandlerThread vs IntentService
Rozumiem, że HandlerThread zawiera Looper, który zarządza MessageQueue, który jest podawany przez Handler. O ile rozumiem, możesz przepchnąć zadanie dla HandlerThread i będzie ono wykonywane. Jest to świetna rzecz do wykorzystania w długich operacjach, które nie są powiązane z systemem operacyjnym, w których można przekazać wyniki z powrotem do interfejsu użytkownika przez runOnUiThread().
W przeciwieństwie do tego, IntentService jest dobre dla długotrwałych operacji niezwiązanych z interfejsem użytkownika, może wykonywać zadania po kolei, gdy jest wykonywane z zadaniami, które wywołuje selfStop(), aby samemu się zamknąć. Jeśli IntentService pracuje nad zadaniem, kiedy przychodzi nowe żądanie, dodaje do kolejki i przetwarza drugą, gdy kończy się na 1..
Z mojego punktu widzenia wykonują tę samą pracę w taki sam sposób. Załóżmy, że mam aplikację, gdzie użytkownik TAP na przycisku, zaczynam pobierać plik. Jeśli użytkownik kliknie kilka razy, nowe zadanie będzie czekało w kolejce, uruchamiając drugą tylko po wykonaniu pierwszego. Co powinienem użyć? IntentService lub HandlerThread?