के साथ अनुरोध को रद्द कैसे करें मैं अपने एपीआई लोड करने के लिए रेट्रोफिट 2.0 और आरएक्स-एंड्रॉइड का उपयोग कर रहा हूं। मैं RxJava Integration with CallAdapter
पर this site पर अनुभाग का पालन करता हूं और यह ठीक काम करता है। लेकिन, मुझे नहीं पता कि अवलोकन करने योग्य ऑब्जेक्ट के साथ लोडिंग अनुरोध को कैसे रद्द किया जाए। कृपया मुझे एक विचार देने में मदद करें।retofit2 और RxAndroid
6
A
उत्तर
17
RxJava पर्यवेक्षण निष्पादन को रद्द करने का एकमात्र तरीका - इससे सदस्यता समाप्त करें। RxJavaCallAdapter okhttp क्लाइंट को रद्द करने का प्रतिनिधि होगा।
तो, आप सरल इस तरह ख़ाली है:
Subscription subscription = getObservable().subscribe();
//When you want to stop execution
subscription.unsubsribe();
आप कोड here की जाँच कर सकते हैं। कोड
final Call<T> call = originalCall.clone();
// Attempt to cancel the call if it is still in-flight on unsubscription.
subscriber.add(Subscriptions.create(new Action0() {
@Override public void call() {
call.cancel();
}
}));
संबंधित मुद्दे
- 1. RxAndroid
- 2. RxJava/RxAndroid
- 3. RxAndroid, घटना बस और गतिविधि जीवन चक्र
- 4. Retofit2 त्रुटि java.io.EOFException: पंक्ति 1 स्तंभ 1
- 5. RxAndroid: बाइंड सक्रियता का उपयोग कब करें और क्यों?
- 6. RxAndroid TextView घटनाओं पाठ परिवर्तन की घटनाओं
- 7. मेमोरी त्रुटि से बाहर RxAndroid + RxJava + Retrofit2
- 8. संपादन टेक्स्ट में टेक्स्ट सक्षम करना (RxAndroid)
- 9. RxAndroid और Retrofit 2 के साथ प्रतिक्रिया शरीर को कैसे प्राप्त करें?
- 10. RxAndroid और रेट्रोफिट: io.reactivex.Observable के लिए कॉल एडाप्टर बनाने में असमर्थ <retrofit2.Response <okhttp3.ResponseBody >>
- 11. Android के लिए कोटलिन में प्रोग्रामिंग करते समय RxAndroid या RxKotlin का उपयोग करें?
- 12. rxandroid ui धागे पर चलाने के लिए कहता है भले ही यह एंड्रॉइडशेड्यूलर्स.माइन थ्रेड()
- 13. जीपीएस स्थान अपडेट सुनने के लिए rxandroid का उपयोग कैसे करें
- 14. प्रोगुआर्ड और आरएक्स एंड्रॉइड वी .1.1.0
- 15. AndroidObservable.fromBroadcast कहां मिल सकता है?
- 16. आरएक्सजेवा के साथ डायलॉग फ्रैगमेंट का प्रबंधन कैसे करें?
- 17. "#", "$", "%", "&", और "_" "\ #", "\ $", "\%", "\ &", और "\ _"
- 18. प्रदर्शन और सॉर्टिंग, और mysql और php
- 19. "और" और "या"
- 20. "बिटवाइस और" और सी ++
- 21. और बनाम * और | बनाम +
- 22. getters और setters और
- 23. सीएसएस "और" और "या"
- 24. {} और {}
- 25. और
- 26. $ (...) और `...`
- 27. $ * और $ @
- 28. और
- 29. $ # और $ {# @}
- 30. $ और()
मैं बस 'unsubsribe()' का परीक्षण करता हूं और देखता हूं कि यह काम करता है। ग्राहक को और नहीं कहा जाएगा। लेकिन क्यों okhttp लॉग कई बार प्रिंट प्रिंट करता है। मैं कैसे जांच सकता हूं कि okhttp रद्द कर दिया जाएगा? –
मैंने इसे भी चेक किया है, यह काम करता है, सरल प्रिंट प्राप्त होता है और अंत प्राप्त होता है। लेकिन निश्चित रूप से कोई अनुरोध बंद नहीं किया जा सकता है। हो सकता है कि आपको इस मामले में मिल गया हो। लेकिन यह अभी भी अनुरोध रद्द करने का एकमात्र तरीका है और कॉल रद्द करने के लिए यह बिल्कुल वही है। आप कॉल.cancel() में ब्रेकपॉइंट डालकर इसे देख सकते हैं; जैसे –
धन्यवाद, Vasilov। चूंकि यह एकमात्र तरीका है, जब तक मुझे बेहतर समाधान नहीं मिल जाता तब तक मैं इसका उपयोग करूंगा –