当用户点击他们的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
谢谢。如果期望的解决方案是不可能的。我会考虑这一点。 (删除插入的行也是一个选项,但显然很不理想)。 –