Czy używanie AsyncTask nadal jest zalecane do ładowania elementów listView w tle?

tło

Słyszałem, że istnieje kilka nowych rozwiązań do ładowania danych w tle, które są bardziej zalecane niż AsyncTask (jakładowarki).

Problem

AsyncTasks są świetne i łatwe w użyciu. Ma jednak pewne ograniczenia:

Sama klasa musi zostać zmodyfikowana, ponieważ jest ograniczona liczbą oczekujących zadań (około 256). Oczywiście w adapterze listView zawsze anuluję zadanie, jeśli nie jest ono potrzebne (na przykład, gdy muszę zaktualizować widok, który był używany dla innego elementu).

Muszę również anulować je wszystkie (lub obsługiwać w inny sposób), gdy aktywność / fragment jest tworzony ponownie.

Ze względu na 1 i 2, muszę zarządzać nimi i mieć odniesienie do nich wszystkich

AsyncTask używa kolejki zadań, a czasem muszę użyć stosu, więc musiałem stworzyć własną klasę AsyncTask, która zamiast tego używa stosu.

Pytanie

Czy istnieją alternatywy dla AsyncTask?

Wiem, że wcześniej pytano o to w niektórych postach (jaktutaj), ale myślałem, czy istnieje nowy ogólny sposób ładowania danych w tle, który zastępuje asyncTask.

O Loaderach myślę, że są one używane do baz danych i contentProviderów, ale czy mogą być również używane do ładowania (na przykład) danych z Internetu (jak pliki obrazów)?

Jest też fajna próbka wykonana przez google (tutaj, zwany „bitmapFun”), który zgodnie z tym, co widzę, używa AsyncTask (a nawet go rozszerza, może z tych samych powodów, o których wspomniałem). Ale może też czegoś tam brakuje?

questionAnswers(3)

yourAnswerToTheQuestion