Realm And RxJava查询后必须在mainThread监听

Realm And RxJava查询后必须在mainThread监听_第1张图片
Paste_Image.png

使用Realm查询时,利用asObservable(),必须在MainThread线程监听,否则无法获取到数据,代码如下:

realm.where(GankInfo::class.java)       
    .findAllAsync()        
    .asObservable()           
    .mainUI()        
    .subscribe(
    {            
          showList(it)
          Timber.i(it.toString())       
     }
    ,                
        Throwable::printStackTrace
)

其中.mainUI()为kotlin的Extension方法:

fun  Observable.mainUI(): Observable {    
        return observeOn(AndroidSchedulers.mainThread())
}

发文方便自己查询,能够帮到大家就最好了。

你可能感兴趣的:(Realm And RxJava查询后必须在mainThread监听)