Nun, ich habe versucht, überall zu suchen, bevor Sie diese Frage stellen. Ich arbeite an einer Anwendung, die Retrofit implementiert, um alle Serverinteraktionen zu behandeln. Alles funktioniert gut, aber wenn ich die App auf Android M (Gerät: huawei P9/P9 Lite) getestet, werden die Rückrufe von Retrofit nur aufgerufen, wenn das Gerät WIFI verbunden ist. Um genau zu sein: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);
wie Sie es ist ein straight forward Anruf nichts Besonderes zu sehen. Aus irgendeinem Grund wird der Rückruf nie (ohne Nachrichten oder Ausnahmen auf dem Android-Monitor) aufgerufen, wenn das Telefon mobile Daten verwendet. und he're den Rückruf
@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();
}
Können Sie die ausgelöste Ausnahme angeben? Oder der Fehlercode ... – Jaythaking
Haben Sie die Netzwerkberechtigungen im Manifest festgelegt? ' ' Hat Ihr Gerät auch Daten deaktiviert für zellulare? –
Jeder andere Anruf innerhalb der Anwendung funktioniert einwandfrei. Die Berechtigung wird im Manifest deklariert. Das seltsame Ding nur in diesem Fall wird der Callback nie aufgerufen (ich habe sogar versucht, die Timeout-Zeit zu verringern) nichts. Ich benutze einen Fragment Pager Adapter mit Fragmenten darin innerhalb des Fragments Ich abzufangen ein Klick-Ereignis, um diesen Anruf zu starten der Anruf wird ausgeführt, aber der Rückruf wird nie ausgelöst –