का उपयोग करके प्रतिलिपि भेजा गया था, वास्तविक संदर्भ के बजाय वास्तविक वस्तुओं की प्रति स्ट्रीमिंग करते समय और शेड्यूलर्स.आईओ थ्रेड पर इसे देखते हुए, प्रसिद्ध अपवाद संदेश के साथ एक क्रैश होता है "गलत धागे से दायरे का उपयोग वास्तविक वस्तुओं को केवल उनके द्वारा बनाए गए धागे में ही पहुंचा जा सकता है। "गलत थ्रेड अपवाद से दायरे का उपयोग, जबकि प्रतिलिपि प्रतिलिपि
कॉपी को थ्रेड मुक्त नहीं होना चाहिए? क्या मैं इसे एक धागे से उत्पन्न कर सकता हूं और इसे एक अलग धागे पर संसाधित कर सकता हूं?
इस प्रकार मैं देखरेख कर रहा हूं।
public Observable<Brand> getAllBrands() {
return realm.where(Brand.class)
.findAll()
.asObservable()
.flatMap(Observable::from)
.map(brand -> realm.copyFromRealm(brand));
}
निम्नलिखित है कि मैं getAllBrands() को कैसे देखता हूं।
Observable<Brand> brandObservable = dataManager.getAllBrands();
brandObservable.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Observer<Brand>() {
@Override
public void onCompleted() {
Log.d("reactive", "completed");
}
@Override
public void onError(Throwable e) {
Log.d("reactive", e.getMessage());
}
@Override
public void onNext(Brand brand) {
dataSource.add(brand.getName());
myAdapter.notifyDataSetChanged();
}
});
आप जिस 'वास्तविक' का उपयोग कर रहे हैं वह 'io()' शेड्यूलर पर नहीं है। – EpicPandaForce