Il mio codice è simile a questo:Rxjava AndroidSchedulers.mainThread() significa thread UI?
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe ({
adapter.notifyDataSetChanged()
})
ma ho ottenuto un errore: Solo il thread originale che ha creato una gerarchia vista può toccare i suoi panorami. così ho modificarla in:
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe ({
runOnUiThread(Runnable {
adapter.notifyDataSetChanged()
})
}
Rende sense.So Sono confuso. Avevo pensato che lo .observeOn(AndroidSchedulers.mainThread())
significasse che il codice nel blocco subscribe viene eseguito sul thread ui, ma come ho ottenuto questo errore?
Lo stacktrace punta a 'adapter.notifyDataSetChanged()'? Mb l'errore è in un'altra parte della catena? In generale, sì, 'mainThread()' significa thread dell'interfaccia utente di Android. – AndroidEx
non so come capire se lo stacktrace punta a adapter.notifyDataSetChanged –