当我运行我的应用程序时,这就是使用Android Studio的logcat中的okhttp日志拦截器进行的改造所返回的结果。就像您可以看到它成功一样。但是,以下对MovieEntity的响应未保存在Room db中。我正在使用Google aac样本中的networkboundresource
下面是从logcat看到的API响应
Content-Type: text/html; charset=UTF-8 07-06 14:51:36.903 25341-25383/cash.cash D/OkHttp: {"error":"","content":[{"entity_id":"4603326542018531006","timestamp":"1530010493","actor_no":"5080326212018421006","target_no":"5080326212018421006","actor_name":"nattab juli","target_name":"nattab ,"category_id":"22959","category_name":"Vehicles and transport","product_name":"Toyota Highlander 2017","product_features":"Low fuel consumption. Stylish design","product_is_new":"1","standard_price":"150000000","price_negotiable":"0","quantity_available":"1","commission_payable":"100000","picture_id":"28636"}
],"headers":[]
}
<-- END HTTP (17796-byte body)
当我使用Chrome /检查时,可以看到该表是用所有列创建的,但是响应数据没有保存到房间。 logcat不包含任何错误或指向任何类。我问在什么情况下会
由于返回了响应,APIRepository的movieDao.saveMovies(item.getResults());
无法将上述响应保存到会议室。
我怀疑这是应该保存响应的networkboundresource的APIRepository的部分代码。
public LiveData<Resource<List<CouponEntity>>> loadPopularMovies() {
return new NetworkBoundResource<List<CouponEntity>, MoviesResponse>() {
@Override
protected void saveCallResult(@NonNull MoviesResponse item) {
movieDao.saveMovies(item.getResults());
}
@NonNull
@Override
protected LiveData<List<CouponEntity>> loadFromDb() {
**return movieDao.loadMovies();**
}
@NonNull
@Override
protected Call<MoviesResponse> createCall() {
return apiServices.loadMovies();
}
}.getAsLiveData();
}
public LiveData<CouponEntity> getMovie(int id) {
return movieDao.getMovie(id);
}