अंदर मैं हाल ही में एक Android ऐप्लिकेशन के विकास शुरू कर दिया है और एक बाकी सेवा के एक ग्राहक के रूप में रेट्रोफिट उपयोग करने के लिए फैसला किया, लेकिन मुझे यकीन है कि अगर मेरे दृष्टिकोण अच्छा है नहीं कर रहा हूँ:रेट्रोफिट कॉल AsyncTask
मैं। मैंने अपने एपीआई को एक एसिंक्रोनस कॉल लागू किया है, जिसे AsyncTask की doInBackground विधि के अंदर बुलाया जाता है। चिंता: this article पढ़कर मुझे उलझन में मिला। AsyncTasks इस तरह के कार्यों के लिए उपयुक्त नहीं हैं? क्या मुझे एपीआई को सीधे गतिविधि से कॉल करना चाहिए? मैं समझता हूं कि यूआर थ्रेड पर रेट्रोफिट की कॉलबैक विधियां निष्पादित की जाती हैं, लेकिन HTTP पर कॉल के बारे में कैसे? क्या रेट्रोफिट उस के लिए धागे बनाते हैं?
ii। मैं AuthenticationResponse को SharePreferences ऑब्जेक्ट के अंदर सहेजना चाहता हूं, जो कॉलबैक की सफलता विधि के अंदर उपलब्ध नहीं प्रतीत होता है। कोई सुझाव/अच्छी प्रथाओं?
- synchronic
आप:
@Override
protected String doInBackground(String... params) {
Log.d(LOCATION_LOGIN_TASK_TAG, params[0]);
LocationApi.getInstance().auth(new AuthenticationRequest(params[0]), new Callback<AuthenticationResponse>() {
@Override
public void success(AuthenticationResponse authenticationResponse, Response response) {
Log.i("LOCATION_LOGIN_SUCCESS", "Successfully logged user into LocationAPI");
}
@Override
public void failure(RetrofitError error) {
Log.e("LOCATION_LOGIN_ERROR", "Error while authenticating user in the LocationAPI", error);
}
});
return null;
}
धन्यवाद आपके उत्तर कोनराड के लिए बहुत कुछ। मैं अनिश्चित था कि दृश्यों के पीछे रेट्रोफिट क्या कर रहा था।सबसे पहले मैं एक AsyncTask में नेटवर्क कॉल कर रहा था जो कि शेयरप्रेरेंस उदाहरण का उपयोग करने के लिए एक ओवरकिल और मुश्किल है। बहुत अच्छा और सूचनात्मक उत्तर – user3159152
आपका स्वागत है मुझे खुशी है कि मैं आपकी मदद कर सकता हूं। यदि यह आपके लिए उपयोगी है तो कृपया इसे स्वीकार करें। बस चेकबॉक्स –
बहुत अच्छी स्पष्टीकरण चिह्नित करें। – Andrain