我正在尝试以编程方式读取浏览器历史记录。代码工作正常,但有些时间代码给出“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
}
但是我想知道浏览器数据库何时会被任何其他应用程序访问,同时我的应用程序将访问浏览器数据库,那么这个异常就会出现。如果是,那么我该如何处理这种情况以避免这种异常。