2
我有一个产品的列表,其中有一个图像作为uri(字段),我需要保存在内部存储上。我怎么没发现与当前的代码做的问题:如何在内部调用的Observer.onNext中运行IO操作mainThread
我从WS得到的数据使用改装
RestClient.getClient().getProducts()
当我从WS得到的数据,我需要把它们保存到Realm DB
将图像保存到Realm DB后,我尝试将图像保存在内部存储器上,但我无法在
mainThread
内调用onNext
。public void getProductsHandler(final Context context) { MyApplication application = MyApplication.get(context); rx.Observable<ProductResponse> faq = RestClient.getClient() .getProducts() .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(application.defaultSubscribeScheduler()); faq.subscribe(new Observer<ProductResponse>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(ProductResponse response) { RealmService realmService = new RealmService(realm); realmService.setProducts(response.getResults()); ((MainActivity) context).saveBannersIntoInternal(response.getResults()); } }); }
什么好的解决办法?
如果我可能会问,创建'Thread's并启动它们会发生什么? – Elltz
@超级califragilistic我认为在相同的解决方案,但想知道如果可能,使其更好 – Abdellah
你应该使用rx操作符进行操作链接,在你的情况下'flatmap' – zella