나는 안드로이드 초보자이며 http 호출을 위해 Retrofit 2.0을 사용하고 있습니다. 다른 활동에서 같은 호출을 사용하기 때문에, 나는 비 활동 클래스에서 함수를 만들었습니다. 여기 비 활동 클래스의 개장 전화
public class ServerRequests {
private static ServerRequests serverRequests = new ServerRequests();
public static ServerRequests getInstance(){
return serverRequests;
}
public LoginResponse ClientLogin(final LoginRequest request, Context context){
final ProgressDialog dialog = DialogueUtils.getInstance().showProgressDialog(context);
dialog.setMessage("Loading...");
dialog.show();
RestApi mApi = RetrofitProvider.getInstance().getRestApi();
Call<UserToken> call = mApi.clientLogin(request);
// Stores Login response
final LoginResponse loginResponse = new LoginResponse();
call.enqueue(new Callback<UserToken>() {
@Override
public void onResponse(Call<UserToken> call, Response<UserToken> response) {
dialog.dismiss();
if (response.isSuccessful()){
loginResponse.setMloginstatus(true);
loginResponse.setStatusCode(response.code());
loginResponse.setUserToken(response.body());
return;
}
// response isn't successful
loginResponse.setMloginstatus(false);
loginResponse.setStatusCode(response.code());
loginResponse.setMessage(response.message());
loginResponse.setUserToken(null);
}
@Override
public void onFailure(Call<UserToken> call, Throwable t) {
dialog.dismiss();
loginResponse.setMloginstatus(false);
loginResponse.setUserToken(null);
loginResponse.setMessage(t.getMessage());
loginResponse.setStatusCode(FAILURE_ERROR);
}
});
return loginResponse;
}
}
내가 활동 클래스에서 위의 함수를 호출 할 것이다
,
코드입니다 여기비 활동 클래스 코드 내 개조 통화, 여기
LoginRequest request = new LoginRequest();
request.setPassword(PASSWORD);
request.setEmail(USER_NAME);
// Calling Login function
LoginResponse response = ServerRequests.getInstance().ClientLogin(request, this);
, 받기 전에 응답 클래스에서 다음 코드 행 세트가 실행 중입니다. 따라서 Activity 클래스는 함수가 호출 순서로 되돌아 갈 때까지 기다리지 않습니다.
누구든지이 작업을 수행하는 더 좋은 방법이 무엇인지 제안 해 주실 수 있습니까?
는onResponse
또는
onFailure
중 하나를 호출은 백그라운드에서 수행하고, 즉시 호출이 완료로, 두 개의 콜백 중 하나라고 .. 당신