android - Perform requests with Retrofit inside custom Runnable -
मैं RequestQueue.cancel (स्ट्रिंग टैग) < / P> यदि मुझे लगता है कि मुझे एक अच्छा समाधान मिल गया है: अनुरोधों के मैंने ताकि प्रत्येक हर बार जब मैं एक नया अनुरोध करता हूँ, तो मैं वॉली से
Retrofit का उपयोग कर एक कस्टम कार्यान्वयन में माइग्रेट कर रहा हूं, लेकिन मैं अपने कार्यान्वयन में कुछ
वॉली विशेषताओं को पसंद करता हूं, उदाहरण के लिए
अनुरोध अनुरोधित टैग है, तो यह एक
बूलियन मान,
mCanceled को सेट करके रद्द कर दिया गया है,
चलाएँ विधि इस मान को जांचता है और यदि यह सत्य है तो वापस लौटाता है। इसे
रिस्ट्रॉफ़्ट के साथ पुन: पेश करने में सक्षम होने के लिए, मुझे अपने कस्टम क्लास का उपयोग करने के लिए डिफॉल्ट के बजाय
Runnable का उपयोग करने में सक्षम होना चाहिए, जहां मेरे पास
mTag और
m रद्द किए गए फ़ील्ड। इसके अलावा,
वॉली भी ऐसे झंडे को सक्रिय
थ्रेड के अंदर सेट करने में सक्षम था और उन्हें तुरंत बंद कर देता है। मेरा
रद्द सभी विधि, जो मैंने पहले से लागू कर ली है, बस कतार में एक और कतार में नालियां निकालती है, लेकिन सक्रिय धागे तक पहुंचने में सक्षम नहीं है। क्या
रिस्ट्रॉफ़्ट और
थ्रेडपूल एक्सक्लोरर
runnable को अवरुद्ध करने के बजाय, मैं
कॉलबैक निष्पादन को अवरुद्ध कर रहा हूं।
कॉलबैक इंटरफ़ेस बढ़ा दिया है:
सार्वजनिक इंटरफ़ेस कस्टम कॉलबैक इन्टरफेस & lt; T & gt; कॉलबैक का विस्तार & lt; T & gt; {सार्वजनिक स्ट्रिंग getTag (); सार्वजनिक स्ट्रिंग सेटटैग (स्ट्रिंग टैग); सार्वजनिक शून्य रद्द करें (); सार्वजनिक बूलियन रद्द () है; }
कॉलबैक के टैग और एक रद्द ध्वज हो। फिर
सफलता पद्धति से शुरू होती है:
सार्वजनिक वर्ग कस्टम कॉलबैक & lt; कन्वर्टडेटा & gt; कस्टम कॉलबैक इंटरफ़ेस & lt; कन्वर्टेडडेटा & gt; {// विफलता ... @ ओवरराइड पब्लिक व्यर्थ सफलता (कन्वर्टडेटा सीडी, रिस्पांस रिस्पॉन्स) {यदि (रद्द किया गया है); // ....}}
कस्टम कॉलबैक को एक
सूची के अंदर संग्रहीत करता हूं बस सूची को पुनरावृत्त करें और एक ही टैग वाले आइटम पर
रद्द करें () कॉल करें।
Comments
Post a Comment