पर डिबगिंग करते समय RxJava कैश थ्रेड में इंटरप्टेड अपवाद, कभी-कभी जब मैं अपने ऐप को डिबग कर रहा हूं, तो मुझे RxCachedThreadScheduler-1 में इंटरप्टेड एक्सेप्शन का सामना करना पड़ता है। एंड्रॉइड
Fatal Exception: java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:1991)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1048)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:776)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
मैं जिसमें मैं इस तरह मेरी नमूदार की सदस्यता एक कस्टम दृश्य है:
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
sub = FollowHandler.getInstance().getObservable()
.filter(new Func1<FollowEvent, Boolean>() {
@Override
public Boolean call(FollowEvent followEvent) {
if(followEvent == null || followEvent.user == null
|| user == null)
return false;
return followEvent.user.id == user.id;
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<FollowEvent>() {
@Override
public void onCompleted() {}
@Override
public void onError(Throwable e) {}
@Override
public void onNext(FollowEvent followEvent) {
reactToThisNiceEvent(followEvent);
}
});
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
if(sub != null)
sub.unsubscribe();
}
यहाँ नमूदार है: यहाँ का पता लगाने है, जिसमें
eventSubject.asObservable()
.observeOn(Schedulers.io())
.doOnNext(new Action1<FollowEvent>() {
@Override
public void call(FollowEvent followEvent) {
if(followEvent != null)
doSomethingNice(followEvent);
}
})
.share();
eventSubject एक है सरल PublishSubject। मैं RxJava 1.1.0 के साथ RxAndroid 1.1.0 का उपयोग कर रहा हूं।
क्या किसी को पता है कि यह क्यों हो रहा है?
जवाब के लिए धन्यवाद। जैसा कि आपने सुझाव दिया है, मैं सब्सक्राइब करने की कोशिश करता हूं और देखता हूं। हालांकि मुझे इसका परीक्षण करने में कुछ समय लग सकता है। शेयर के बारे में, मुझे इसकी आवश्यकता है। चूंकि शेयर से पहले किए गए कार्यों को सभी ग्राहकों के बीच साझा किया जाना चाहिए (और परिणाम सभी ग्राहकों के लिए समान है)। अगर मैं शेयर हटा देता हूं, तो डॉनऑनक्स्ट को सभी ग्राहकों के लिए बुलाया जाएगा (जो व्यर्थ है)। और सदस्यता के लिए धन्यवाद सदस्यता() चेक। मैं पूरी तरह से याद किया। – Avsector