Mein Team hat eine neue Android-App entwickelt, die Room umfangreich nutzt.Android Room + AsyncTask
Ich bin unsicher, ob wir AsyncTask korrekt verwenden.
Wir mussten alle Aufrufe zum Einfügen/Aktualisieren/Löschen in AsyncTasks umbrechen, was zu einer großen Anzahl von AsyncTasks führt. Alle Anrufe in Room erfolgen von Hintergrunddiensten. Es gibt keinen direkten Zugang zu den Räumen von Aktivitäten oder Fragmenten - sie bekommen alles über LiveData.
Ein Beispiel Aufruf eine Zeile einzufügen:
AsyncTask.execute(() -> myModelDAO.insertInstance(myModel));
Mit diesem in der DAO:
@Insert
void insertInstance(MyModel model);
einfügen Abfrage kann Android-UI-Thread sperren und es ist nicht erlaubt, dies zu tun. Wir müssen einfügen im Hintergrund async oder RX –
@MunishThakur: Ja, aber es gibt viele Möglichkeiten, asynchrone Arbeit zu tun, die keine 'AsyncTask' beinhaltet. – CommonsWare
Richtig, mit Lamba und Kotlin Unterstützung alles ist kürzer Event Async Aufgabe ist auch von einem Liner :-) AsyncTask.execute ({// Code zu exceute}) –