我正在尝试以编程方式阅读浏览器历史记录。代码工作正常,但有些时间代码给出“android.database.sqlite.SQLiteException:数据库被锁定:超出重试次数”。在我的应用程序中,此代码从多个线程访问,所以现在我已将该方法更改为synchronized
,它将从后台读取浏览器历史记录。现在,在我的应用程序中,此方法将逐个访问,因为此方法为synchronized
。
这是我的代码:
String[] proj = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL, Browser.BookmarkColumns.DATE, Browser.BookmarkColumns.VISITS };
mCur = context.getContentResolver().query(Browser.BOOKMARKS_URI, proj, null, null, null);
if(mCur != null)
{
// Processing on cursor
}
但我想知道什么时候浏览器数据库会被任何其他应用程序访问,同时我的应用程序将访问浏览器数据库,然后会出现此异常。如果是,那么我该如何处理这种情况以避免这种异常。