1

プログラムでブラウザの履歴を読み取ろうとしています。コードは正常に動作しますが、コードで「android.database.sqlite.SQLiteException: データベースがロックされています: retrycount exceeded」が発生することがあります。私のアプリでは、このコードは複数のスレッドからアクセスされるため、そのメソッドを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
}

しかし、いつブラウザデータベースが他のアプリからアクセスされ、同時に私のアプリがブラウザデータベースにアクセスするのかを知りたいのですが、この例外が発生します。はいの場合、このケースを処理してこの例外を回避するにはどうすればよいですか。

4

0 に答える 0