नहीं कहा जाता है, पहले मैं यह बताने की कोशिश करूंगा कि मैं क्या करने की कोशिश कर रहा हूं, अगला आप देखेंगे कि मैं क्या कर रहा हूं (कोड)। चूंकि मैं आरएक्सजेवा में नया हूं, और अभी भी सीखना मुझे आपकी राय देने के लिए स्वतंत्र हो गया है।RxJava onError थ्रेड के अंदर हैंडलर नहीं बना सकता है जिसे Looper.prepare()
तो, मैं सर्वर से नेटवर्क एपीआई को कॉल कर रहा हूं और जब अनुरोध शुरू करता हूं तो मैं लोडर (स्पिनर) को कॉल करता हूं, जब मैं इसे छिपाता हूं और जब मुझे कोई त्रुटि मिलती है तो वही होता है। मैं अपने सभी अनुरोधों के लिए यह सामान्य चाहता हूं इसलिए मुझे पैरामीटर से अवलोकन और पर्यवेक्षक मिलते हैं। इस विधि पर, मुझे सिर्फ छिपाने और लोडर दिखाने की परवाह है।
ऑनरर (और यहां चाल भाग है), मैं भी एक संवाद दिखाने की कोशिश कर रहा हूं, लेकिन मुझे त्रुटि मिली है जिसे आप शीर्षक पर देख सकते हैं। धागा अंदर हैंडलर कि Looper.prepare आह्वान नहीं किया()
यहाँ कोड है ..
protected void makeMyrequest(MyBaseActivity myBaseActivity, Observable observable, Observer observer) {
mSubscription = observable
.doOnRequest(new Action1<Long>() {
@Override
public void call(Long aLong) {
Log.d(TAG, "On request");
myBaseActivity.showLoader();
}
})
.doOnCompleted(new Action0() {
@Override
public void call() {
Log.d(TAG, "onCompleted: Hide spinner");
myBaseActivity.hideLoader();
mSubscription.unsubscribe();
}
})
.doOnError(new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
Log.d(TAG, "onError: Hide spinner");
myBaseActivity.showAlertDialog("error");
myBaseActivity.hideLoader();
}
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer);
}
नहीं बना सकता मेरी आधार गतिविधि पर मैं संवाद
दिखाने के लिए एक विधि हैpublic void showAlertDialog(String message) {
mDialog = new AlertDialog.Builder(this)
.setMessage(message)
.show();
}
बात यह है कि stacktracer से मायने रखती है
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:200)
at android.os.Handler.<init>(Handler.java:114)
at android.app.Dialog.<init>(Dialog.java:119)
at android.app.Dialog.<init>(Dialog.java:168)
at android.support.v7.app.AppCompatDialog.<init>(AppCompatDialog.java:43)
at android.support.v7.app.AlertDialog.<init>(AlertDialog.java:95)
at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:927)
at android.support.v7.app.AlertDialog$Builder.show(AlertDialog.java:952)
at xx.myapp.MyBaseActivity.showAlertDialog
आपको स्टैक ट्रेस शामिल करने की आवश्यकता है, अन्यथा कोई भी आपको बता सकता है कि अपवाद कहां उत्पन्न होता है। – Kiskae