У меня есть массив ContentValues [] с именем cv, который входит в мою базу данных SQLite. Для простоты в моей базе данных есть 3 столбца (идентификатор автоинкрементации для каждой строки, дня и влажности). База данных состоит из 3 строк. Вот пример данных, добавленных в одну строку.
ContentValues cv = new ContentValues();
cv.put(WeatherContract.WeatherData.COLUMN_DAY_OF_WEEK, day);
cv.put(WeatherContract.WeatherData.COLUMN_HUMIDITY, humidity);
Это повторяется 3 раза, и каждый ContentValue помещается в мой массив ContentValue, прежде чем в мою базу данных будет выполнена массовая вставка.
У меня есть задание, которое каждые пять минут получает новые данные с сервера. Поэтому мне нужны эти новые данные, чтобы заменить старые, и у меня возникли проблемы с синтаксисом. Я дошел до того, что у меня ContentValues [] jsonResults с новыми данными, а затем я немного запутался. Как я могу обновить ВСЕ строки в моей таблице? Нужно ли перебирать метод обновления contentResolvers:
for (int i =0; i<jsonResults.length;i++){
context.getContentResolver().update(weatherQueryUri,jsonResults[i],null,null);
}
Если так, что я помещаю в свои предложения where и selectionArgs вместо null? Или я оставлю это значение пустым?
После прохождения ContentProvider, вот мой метод базы данных для фактической вставки:
public void updateRow(ContentValues weatherValue,String where, String selection){
mDb.update(WeatherContract.WeatherData.TABLE_NAME,weatherValue,null,null);
}
Спасибо!