им возникают сомнения относительно того, как procede с управлением базой данных с помощью BEGIN TRANSACTIONAndroid SQLite транзакций, два источники данных
У меня есть 2 источника данных объектов: ClientDataSource и MovementsDataSource
каждые из Theres имеет свой собственный объект SQLitedabase, который установленным с помощью метода Open(), с помощью набора его частного объекта базы данных с Writable Database.
Теперь мне нужно отправить записи из таблицы перемещений на сервер, а затем попросить обновленных клиентов с того же сервера.
Внутри моего класса i сначала Отправьте новые движения, затем, если удастся, удалите всех клиентов из SQLite и, наконец, извлеките новых Обновленных клиентов с сервера и вставьте их в базу данных.
Каждый источник данных имеет метод Get() для получения своего соответствующего объекта базы данных, но он фактически является той же базой данных, в которой они работают, и я не уверен, как использовать методы BaginTransction, Endtransaction для обеспечения согласованности данных.
это код из асинхронный Task
@Override
protected Boolean doInBackground(String... url) {
try {
clientDataSource.open();
movementDataSource.open();
} catch (SQLException e) {
//Treat SQL Exception
}
try {
if(sendMovements()) {
clientDataSource.deleteAllClients();
}
updateDatabase(url[0]);
} catch (JSONException e) {
//Treat Json Exception
} catch (IOException e) {
//Treat IOException
}
return true;
}
Должен ли я просто начать beginTransaction() один раз, а затем в конце endTransaction .. ???. –
like, clientDataSource.getDatabse(). BeginTransaction() –
, а затем в конце clientDataSource.getDatabase(). EndTransaction() ,,, dont minding the data data data? –