私は、AsyncTaskオブジェクト内のローカルデータストレージを検証するXMLデータをたくさん処理しています。まず、これらの操作にトランザクションを使用しようとしましたが、トランザクションが進行中にユーザーが他のアクションを実行すると、アプリケーションがフリーズしてトランザクションが終了するのを待って、アプリケーションが応答しなくなることさえあります。Android、SQLiteトランザクションとプロセスフリーズ
トランザクションはいくつかのステップに分割され、繰り返しごとに数百にカウントされることがあります。この問題のために、私はトランザクションを使用してリアルタイムクエリに行きましたが、これは非常に遅いですが、フリーズを解決し、非常にバッテリを消費するアプリケーションにつながりました。
私の質問は、トランザクションを停止してデータベースをロックする方法はありますか?または、私の問題は取引前に準備が整っていないことの結果ですか?
適切な 'ContentProvider'を実装し、適切な数の' ContentProviderOperation.Builder#withYieldAllowed() 'を使って' ContentProviderOperation'sを使用することができます。このパターンを正しく実装する最も良い方法は、抽象クラス[SQLiteContentProvider](http://www.java2s.com/Open-Source/Android/android-latform-packages/providers-CalendarProvider/com/android/providers/)をコピーすることです。 calendar/SQLiteContentProvider.java.htm)を使用します。 – Jens
これを見ていきます。 – Daniel