0
在我的主要活动中,我执行SincronizacionDb来比较SQLite和MYSQL服务器之间的数据,但是json_array检索工作正常,如果数据与服务器不同,则显示true或false,但在APP中,这个值似乎总是假的。Android的display display boolean from Retrofit as false ALWAYS
SincronizacionDb
private void sincronizacionDB() {
if (dbCheck(MainActivity.this, "beneficiosColaborador.db")) {
int size = sqLiteHandler.getLastIdBeneficio();
Call<VersionDb> versionDb = restManager.getApiService().checkServerDatabaseVersion(size);
versionDb.enqueue(new Callback<VersionDb>() {
@Override
public void onResponse(Call<VersionDb> call, Response<VersionDb> response) {
Log.e("RESPONSE", "CALLING ON RESPONSE");
VersionDb version = response.body();
isOutdate = version.getEstado();
Log.i("VERSION", "RESPUESTA" + version.getEstado()); // Get the value from GSon(TRUE, FALSE) WORKS PERFECT
}
@Override
public void onFailure(Call<VersionDb> call, Throwable t) {
Log.e("error", t.getMessage());
}
});
Log.e("outdate","" + isOutdate); // ALWAYS FALSE
if (isOutdate) {
sqLiteHandler.deleteBeneficio();
Log.e("Beneficios", "Se han eliminado los beneficios viejos");
Call<List<Beneficios>> callBeneficios = restManager.getApiService().getListadoBeneficios();
callBeneficios.enqueue(new Callback<List<Beneficios>>() {
@Override
public void onResponse(Call<List<Beneficios>> call, Response<List<Beneficios>> response) {
List<Beneficios> beneficioData = response.body();
sqLiteHandler.addListBeneficios(beneficioData);
}
@Override
public void onFailure(Call<List<Beneficios>> call, Throwable t) {
Log.e("error", t.getMessage());
//Toast.makeText(MainActivity.this, t.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}else{
Call<List<Beneficios>> callBeneficios = restManager.getApiService().getListadoBeneficios();
callBeneficios.enqueue(new Callback<List<Beneficios>>() {
@Override
public void onResponse(Call<List<Beneficios>> call, Response<List<Beneficios>> response) {
List<Beneficios> beneficioData = response.body();
sqLiteHandler.addListBeneficios(beneficioData);
}
@Override
public void onFailure(Call<List<Beneficios>> call, Throwable t) {
Log.e("error", t.getMessage());
//Toast.makeText(MainActivity.this, t.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
和我在Android MONITOR得到了结果
08-11 08:39:31.417 13618-13618/com.freelance.crdzbird_dev.clarobadge D/SQLiteHandler: Fetching LAST ROW from Sqlite: 213
08-11 08:39:31.617 13618-13618/com.freelance.crdzbird_dev.clarobadge E/outdate: false
08-11 08:39:31.867 13618-13618/com.freelance.crdzbird_dev.clarobadge E/RESPONSE: CALLING ON RESPONSE
08-11 08:39:31.867 13618-13618/com.freelance.crdzbird_dev.clarobadge I/VERSION: RESPUESTA true
请人EXPL艾因我如何避免这种错误:(
您发布的代码中没有任何内容更新'isOutdate'的值...您在哪里更改它? –
对不起,我更新了问题,我从VersionDb.getEstado –