使用游标进行并发访问

时间:2013-06-01 17:21:02

标签: java android sms cursor android-contentprovider

我正在编写Android SMS应用程序。我正在使用“content:// sms / inbox”阅读已经存在的SMS-es(我知道它没有记录)。我想知道如何处理并发访问?

Uri uri = Uri.parse("content://sms/inbox");
mCursor = getContentResolver().query(uri, null, null, null,null);
mCursor.moveToFirst();
//I display the first sms. The code is not shown here.
//As the user scrolls the SMS-es other SMS-es are shown
//by moving the cursor

我的代码有问题。具有必要权限的其他应用程序可以删除SMS-es。如果其他SMS应用程序删除了我的光标指向的SMS,光标会发生什么。例如,假设我有10个短信(最新的是第一个),我的光标是第9个短信。其他一些短信应用删除最后3条短信。这不是让我的光标悬空吗?

while(cursor.moveToNext()) {
//read the fields. What if somebody deletes the SMS-es
//after moveToNext evaluates to true but before I read fields?
}

我认为结果集中的所有行都没有被缓存,这就产生了问题。

0 个答案:

没有答案