로그인 활동을 Android에 작성했습니다. 내 코드는 여기에이 같은 비동기 작업을 원하는비동기 작업에서 OnResponse 함수를 생략했습니다.
public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
boolean succes;
private final String mEmail;
private final String mPassword;
UserLoginTask(String email, String password) {
mEmail = email;
mPassword = password;
}
@Override
protected Boolean doInBackground(Void... params) {
Retrofit retrofit = LoginService.buildRetrofit();
LoginApiInterface apiService = retrofit.create(LoginApiInterface.class);
Call<LoginPojo> login = apiService.login(mEmail, mPassword);
login.enqueue(new Callback<LoginPojo>() {
@Override
public void onResponse(Call<LoginPojo> call, Response<LoginPojo> response) {
int c = response.raw().code();
if (c == 200) {
succes = true;
token = response.body().getAuthorization();
} else {
succes = false;
mPasswordView.setError(getString(R.string.error_incorrect_password));
}
}
@Override
public void onFailure(Call<LoginPojo> call, Throwable t) {
succes = false;
mPasswordView.setError(getString(R.string.error_incorrect_password));
}
});
return succes;
}
모두가 잘 보이지만, 그것은 단지 그때는 항상 반환의 부름까지 코드를 실행
"yeaah 난 내 방법은 서버에서 서로 다른 코드를 반환 알고 있지만 문제는 그 코드는입니다 만 호출 방법까지 실행 OnResponse 함수는 결코 수행되지 않습니다. ", 어떻게 실제로 이것을 찾았습니까? –
이 코드를 디버깅 중이기 때문에 – neir45
콜백 내에 'login.enqueue'가 아닌 중단 점을 추가하십시오. 이런 식으로 콜백이 호출 될 때 디버깅 할 수 있어야합니다. –