Я работаю над приложением, которое имеет более 8 тысяч данных, которые будут извлечены с сервера в первый раз и сохранены в локальную базу данных SQLite, а затем каждый раз будет проверять только новые обновления и сохранять их.
Но проблема в том, что это приложение аварийно завершает работу при первом запуске из-за цикла for, в котором оно впервые хранит данные. Итак, я думал о реализации AsyncTask, но мне нужно передать
Response<List<POJOGetLatestData>> or List<POJOGetLatestData> get_all_latest_data
Ответ. Поскольку я новичок в этом, хотя я искал документацию и ссылку для этого типа передачи аргументов, но не смог найти хороший ресурс.
Как мне это сделать? Есть ли другой удобный способ?
Вот мой код, который я хочу внедрить в AsyncTask
private void saveToDatabase(Response<List<POJOGetLatestData>> response ,List<POJOGetLatestData> get_all_latest_data) {
if (response.code() == 200 && get_all_latest_data != null) {
flag=false;
for (int i = 0; i < get_all_latest_data.size(); i++) {
flag = db.checkWord( Integer.valueOf(get_all_latest_data.get(i).getId()));
ContentValues wordValue = new ContentValues();
wordValue.put("id",Integer.valueOf(get_all_latest_data.get(i).getId()));
wordValue.put("Correct", get_all_latest_data.get(i).getRightWord().toString());
wordValue.put("Wrong", get_all_latest_data.get(i).getWrongWord().toString());
wordValue.put("date_time", get_all_latest_data.get(i).getLastUpdate().toString());
if(flag){
db.updateWords(wordValue,Integer.valueOf(get_all_latest_data.get(i).getId()));
}
else
{
db.insertWords(wordValue);
}
}
}
}
Запросы к БД ::
public boolean insertWords(ContentValues values) {
db.insert("tbl_word_data", null, values);
return true;
}
public boolean updateWords(ContentValues values, int id) {
db.update("tbl_word_data", values, "id="+id, null);
return true;
}
Журнал ошибок ::