Ich versuche, dishList
zu meinem Dienst zu senden, aber es ist fest. Selbst wenn ich ein Objekt von dishList
bis dl
bekomme, funktioniert es nicht. ABER wenn ich dl
wie im unten gezeigten Code sende, funktioniert es. Daher ist das Problem in Realm zurückgegebenen Objekten. Wie sende ich Realm-Return-Daten über Retrofit2?So senden Sie Realm-Return-Daten durch Retrofit2?
RealmResults<Dish> realmResults = realm.where(Dish.class).findAll();
List<Dish> dishList = realmResults.subList(0, realmResults.size());
List<Dish> dl = new ArrayList<>();
dl.add(new Dish());
mDishService.updateRepository(dishList).enqueue(new Callback<Boolean>() {
@Override
public void onResponse(Call<Boolean> call, Response<Boolean> response) {
if (response.body()) {
response.body();
}
}
@Override
public void onFailure(Call<Boolean> call, Throwable t) {
}
});
Service-Methode:
@POST("/v1/dishes/repo/u")
Call<Boolean> updateRepository(@Body List<Dish> dishes);
Was macht das? 'if (response.body()) {response.body(); } ... Wie genau funktioniert das nicht, wie du es erwartest? Was unterscheidet 'mDishService.updateRepository (dishList)' von 'mDishService.updateRepository (dl)'? –
Bitte klären Sie "es ist fest" und "es funktioniert nicht", was genau passiert? Sehen Sie im logcat irgendwelche Ausnahmen? – Egor
@ cricket_007, @Egor Problem ist, dass Realm-Daten nicht serialisiert werden können, deshalb ist es notwendig, Binding von Realm von seinen Objekten zu entfernen, wie meine 'realmResults' ny mit' realm.copyFromRealm (realmResults); '. Es gibt Liste ohne Realm –