Heloou, им пытаются сделать вложенную транзакцию, но бросает SqliteDatabaseLockedException, и я не знаю, почему ...Android, Вложенные транзакции не работает
метод источников данных с открытым() назначить базу данных Writable в их соответствующих атрибуты, чтобы позднее вызвать методы для управления данными. они оба используют SQLHelpder, чтобы вернуть записываемую базу данных.
@Override
protected Boolean doInBackground(String... url) {
try {
clientDataSource.open();
movementDataSource.open();
clientDataSource.getDatabase().beginTransaction();
movementDataSource.getDatabase().beginTransaction();
if(sendMovements()) {
movementDataSource.getDatabase().setTransactionSuccessful();
clientDataSource.deleteAllClients();
}
updateDatabase(url[0]);
clientDataSource.getDatabase().setTransactionSuccessful();
} catch (JSONException e) {
//Treat Json Exception
} catch (IOException e) {
//Treat IOException
} catch (SQLException e) {
e.printStackTrace();
}finally {
movementDataSource.getDatabase().endTransaction();
clientDataSource.getDatabase().endTransaction();
}
return true;
}
какой внутри обновлениеDatabase способ? – Techfist
Я извлекаю данные с сервера и вставляю новых клиентов в db –
, которые db movementDataSource? – Techfist