글쎄,이 질문을 게시하기 전에 어디에서든지 시도해 보았습니다. 모든 서버 상호 작용을 처리하기 위해 Retrofit을 구현하는 응용 프로그램을 작성 중입니다. everthing 괜찮아요하지만 내가 안드로이드 M (장치 : huawei P9/P9 Lite)에서 응용 프로그램을 테스트했을 때 장치가 연결되어있을 때만 retrofit 콜백이 호출되고 있습니다. 은 구체적으로 :Android M + RetroFit 2
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.SECONDARY_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
RestaurantApi restaurantApi = retrofit.create(RestaurantApi.class);
Call<ServerResponse> call = restaurantApi.deleteFromFavoris(preferences.getInt("id", 0), getArguments().getInt("idResto"));
//asynchronous bestOfCall
call.enqueue(BestOfFragment.this);
당신이 공상 정직 통화 아무것도 볼 수있다. 어떤 이유로 전화가 모바일 데이터를 사용할 때 콜백이 절대 호출되지 않습니다 (안드로이드 모니터에서 메시지 나 예외없이). 콜백
@Override
public void onResponse(Call<ServerResponse> call, Response<ServerResponse> response) {
if (response.code() == 200) {
Toast.makeText(getActivity().getApplicationContext(), "Supprimé des favoris", Toast.LENGTH_SHORT).show();
getArguments().putBoolean("isFavoris", false);
}
}
@Override
public void onFailure(Call<ServerResponse> call, Throwable t) {
Toast.makeText(getActivity().getApplicationContext(), "Désolé une erreur inattendue est survenue !!", Toast.LENGTH_SHORT).show();
}
을 he're 장치가 모바일 인터넷 연결이있는 경우 먼저 확인할 수 있습니다
제기 된 예외를 제공 할 수 있습니까? 또는 오류 코드 ... – Jaythaking
매니페스트에서 네트워크 사용 권한을 설정 했습니까? <사용 권한 android : name = "android.permission.ACCESS_NETWORK_STATE"/> 또한 휴대 전화 용 데이터가 비활성화되어 있습니까? –
응용 프로그램 내의 다른 모든 호출이 정상적으로 작동합니다. 권한이 매니페스트에 선언되어 있습니다. 이 경우에만 wierd 건 콜백은 호출되지 않습니다. (심지어 타임 아웃 시간을 줄이려고했습니다.) 아무것도하지 않았습니다. 조각 내에서 프래그먼트 조각이있는 조각 호출기 어댑터를 사용하고 있습니다.이 호출을 시작하기 위해 클릭 이벤트를 가로 챕니다. 호출이 실행되지만 콜백이 실행되지 않습니다. –