Когда пользователь нажимает на свою метку NFC, мое приложение:
- Вставляет нового пользователя в таблицу
users
, возвращает пользователя_id
, затем - Записывает это значение
_id
в тег NFC пользователя.
Проблема в том, что если этот пользователь уберет свой тег слишком быстро, шаг 2 завершится с ошибкой IOException
. Затем пользователю придется снова коснуться своего тега, но это приведет к повторению шага 1, то есть к дублированию записей. :-/
Чтобы решить эту проблему, я хотел бы использовать транзакции на основе этот пример кода из документации API:
db.beginTransaction();
try {
// Insert data into database, getting back _id
// Write _id to NFC tag
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
... но моя база данных завернута в MyContentProvider
, поэтому у меня нет доступа к db
.
Есть ли способ использовать транзакции при вставке данных, не отказываясь от использования MyContentProvider
?