我无法使用这两个查询来擦除房间db中所有过去的记录,我尝试了其他方法,但似乎对我没有用,这是我的代码
这是我存储了json响应中的日期以供以后比较的服务类
//// storing the date from json response
SharedPreferences sharedPreferences = getSharedPreferences("prefs",
MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("date", datetime);
editor.apply();
SharedPreferences sharedPreferences1 = getSharedPreferences("prefs",
MODE_PRIVATE);
String getDate = sharedPreferences1.getString("date", null);
///this is the method which is supposed to delete the data
DeleteOld(getDate);
这是我用来比较日期的一段代码,如果相差等于2天,请删除所有数据
@SuppressLint("SimpleDateFormat")
public void DeleteOld(String dataDate) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss");
try {
Date pasTime = simpleDateFormat.parse(dataDate);
Date nowTime = new Date();
long difference = nowTime.getTime() - pasTime.getTime();
long day = TimeUnit.MILLISECONDS.toDays(difference);
if (day == 2) {
new Thread(() -> {
AppDataBase appDataBase =
DbClient.getInstance(getApplicationContext()).getDataBase();
appDataBase.liveModelDao().deleteAllData(new LiveModel());
}).start();
}
} catch (ParseException e) {
e.printStackTrace();
}
}
并且我使用这些查询来删除数据,但我不知道它们是问题还是其他问题
@Query("DELETE FROM livetable")
void deleteAll();
@Delete
void deleteAllData(LiveModel model);
作为此代码的结果,我想在2天后实际上删除我的房间db的所有数据,并执行此操作以获取json api日期,对其进行存储和格式化,然后尝试从现在开始减去它来获取差异从毫秒转换为天,然后比较如果两天的差等于2,则删除数据,希望这是清楚的人,谢谢您提前提供帮助