Я попытаюсь ответить на этот вопрос следственным способом, потому что я не был уверен в ответе, поэтому я провел некоторое исследование.Некоторые факты являются предположениями, основанными на моих знаниях SQL.Так что кто угодно, не стесняйтесь поправлять меня.В этом вопросе есть две вещи:
1) Первый - прерванный запрос insert
.Room
- это просто уровень абстракции над SQLite , а SQLite соответствует ACID свойствам.В вашем случае нас интересует A tomicity:
Атомарность означает, что все операции транзакции должны быть завершены или откатить всю транзакцию в случае любых сбоев.
2) Секунда - прерывание Thread
, , но , если Thread
прервано с помощью Thread.interrupt()
, это не повлияет на запрос, как упоминалось здесь и в некоторой степени здесь .Поэтому будет выполнено первое insert
, и только тогда будет прервано Thread
.
Логически мыслить, если по какой-то причине запрос прерывается как-то (я не уверенкак он переводит в Java), то атомарность SQLite обязательно прервет транзакцию.