Mój kod to tak:Rxjava AndroidSchedulers.mainThread() oznacza wątek UI?
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe ({
adapter.notifyDataSetChanged()
})
ale mam błąd: tylko oryginalny wątek, który stworzył hierarchię widok może dotknąć jego poglądy. więc go zmienić na:
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe ({
runOnUiThread(Runnable {
adapter.notifyDataSetChanged()
})
}
To sprawia sense.So Jestem zdezorientowany. Myślałem, że .observeOn(AndroidSchedulers.mainThread())
oznacza, że kod w bloku subskrypcji działa na wątku interfejsu użytkownika, ale jak mam ten błąd?
Czy wskaźnik stacktrace wskazuje na "adapter.notifyDataSetChanged()"? Mb błąd jest w innej części łańcucha? Ogólnie rzecz biorąc, tak, "mainThread()" oznacza wątek interfejsu użytkownika Androida. – AndroidEx
Nie wiem, jak ustalić, czy stacktrace wskazuje na adapter.notifyDataSetChanged –