當用戶點擊他們的NFC標籤,我的應用程序:Android - 如何通過ContentProvider修改數據庫時使用事務?
- 插入一個新的用戶進入
users
表,找回用戶_id
,然後 - 寫這個
_id
值到用戶的NFC標籤。
問題是,如果該用戶將標籤移動得太快,第2步將失敗,並顯示IOException
。然後用戶將不得不再次點擊他們的標籤,但是這將導致重複步驟1 - 即重複條目。 : -/
爲了克服這個問題,我想用交易依據this example code from the API documentation:
db.beginTransaction();
try {
// Insert data into database, getting back _id
// Write _id to NFC tag
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
...但我的數據庫被包裹在一個MyContentProvider
,所以我不必db
訪問。
有不放棄MyContentProvider
的使用插入數據時使用的交易方式?
不要使用autogenerated _id ...使用類似guid的東西 – Selvin
謝謝。如果期望的解決方案是不可能的。我會考慮這一點。 (刪除插入的行也是一個選項,但顯然很不理想)。 –