비동기 네트워크 요청을 위해 'Retrofit'을 사용하고 있습니다. 어떻게 로그인을 처리 할 수있는 기능이 있습니까? 예를 들어 내가 현재 시도했습니다ASync 네트워킹 요청이있는 로그인 기능?
public UserAuthResponse Login(String username, String password) {
try {
Callback<UserAuthResponse> getAuthCallback = new Callback<UserAuthResponse>() {
@Override
public void failure(RetrofitError arg0) {
if (arg0 != null) {
if (arg0.getMessage() != null
&& arg0.getMessage().length() > 0) {
Log.e("KFF-Retrofit", arg0.getMessage());
}
}
}
@Override
public void success(UserAuthResponse listItem,
retrofit.client.Response arg1) {
Log.e("dg", listItem.getUser().getFirstname());
}
};
service.authUser(username, MD5(password), getAuthCallback);
return response;
} catch (RetrofitError e) {
e.printStackTrace();
return null;
}
}
그러나 이것은 결함이 : 함수에서 'UserAuthResponse'를 반환하는 방법은 없습니다? 결과를 어떻게 되돌릴 수 있습니까? 내가 웹 서비스에 동기 호출을 필요로하지만 내가 맞았 것 같은
그것은 보이는 'NetworkOnMainThreadException'
이런 것들에 대한 가장 좋은 방법은 무엇입니까? 가난한 설명에 대해 유감스럽게 생각하며 올바른 말을 고안하는 데 어려움을 겪고 있습니다.
정확히 무슨 일을했는지, 로그인을 시작하고, '성공'리스너를 지정하고, 콜백을 통해받은 경우 적절한 메시지를 표시합니다. 이 대답은 최고이므로 받아 들일 것입니다. – Broak