Czy używanie AsyncTask nadal jest zalecane do ładowania elementów listView w tle?
Słyszałem, że istnieje kilka nowych rozwiązań do ładowania danych w tle, które są bardziej zalecane niż AsyncTask (jakładowarki).
ProblemAsyncTasks 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.
PytanieCzy 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?