En son Android uygulamasında Retrofit kullanarak Facebook girişini uyguladım.Yinelenen retrofit geri aramadan kaçının
FacebookLoginInfo facebookLoginInfo = new FacebookLoginInfo(token);
Call<User> call = ApiManager.getService().authenticateFacebookUser(facebookLoginInfo);
call.enqueue(userCallback);
FacebookLoginInfo Facebook erişim belirteci ile basit POJO geçerli: SplashActivity ve LoginActivity, benim POST isteği yapmak istiyorum. ApiManager, servisim için singleton sınıfıdır.
Sorunum, userCallback'in SplashActivity ve LoginActivity'de yinelenmesidir. Bu geri bildirimi sadece bir kez tanımlamak için en iyi uygulama var mı? Kullanıcı geri arama
Tanımı:
private Callback<User> mUserCallback = new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
dismissProgressDialog();
int statusCode = response.code();
if (statusCode == 200) {
User user = response.body();
Log.e(LOG_TAG, "user: " + user.toString());
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
intent.putExtra(Global.EXTRA_USER, user);
startActivity(intent);
} else if (statusCode == 400) {
Toast.makeText(LoginActivity.this, getString(R.string.error_token_required), Toast.LENGTH_SHORT).show();
} else if (statusCode == 403) {
Toast.makeText(LoginActivity.this, getString(R.string.error_invalid_token), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
dismissProgressDialog();
t.printStackTrace();
Toast.makeText(LoginActivity.this, getString(R.string.error_call_failed), Toast.LENGTH_SHORT).show();
}
};
teşekkür ederiz. Call.enqueue (yeni Callback <>() {}) ile eşzamansız çağrımı yapmayı başardım. Benim sorum daha fazla, aynı geri bildirimi iki farklı etkinlikte kullanmak istersek en iyi uygulama hangisidir? – baptisterobert
Geri Bildirimi uygulayan ve istediğiniz yerde kullanmak için UserCallback adlı bir sınıf oluşturmanız gerektiğini düşünüyorum. – humazed
Açık kaynak kodlu bir uygulama üzerinde çalıştım ve bu sorunu nasıl çözdüğümüze bir bakın https://github.com/fossasia/open-event-android/blob/master/app%2Fsrc%2Fmain%2Fjava%2Forg % 2Ffossasia% 2Fopenevent% 2Fapi% 2Fprocessor% 2FEventListResponseProcessor.java – humazed