【发布时间】:2016-03-01 18:05:28
【问题描述】:
当用户点击他们的 NFC 标签时,我的应用:
- 在
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的使用?
【问题讨论】:
-
不要使用自动生成的_id ...使用不同的东西,比如guid
-
谢谢。如果无法实现所需的解决方案。我会考虑的。 (删除插入的行也是一种选择,但显然远非理想)。
标签: android sqlite transactions android-contentprovider android-database