3

カーソルを使用してUIスレッドのsqliteデータベースからデータを取得するのはいつかどうか疑問に思っています。基本的に私はカーソルローダーを使ってカーソルを取得します。そして、そのカーソルで何かをしたいと思います。メインのUIスレッドからカーソルを使って何かをしても大丈夫ですか?本当に私はカーソルから1行を読み取る必要があります。

4

2 に答える 2

3

aから行を取得することCursorは、コストのかかる操作ではありません...一方、データベースからデータをクエリすることは、要求するデータの量やクエリの複雑さによっては時間がかかる可能性があります。sは非同期CursorLoaderでクエリを実行するため、アプローチは問題ありません。Cursor

于 2012-08-01T00:55:32.647 に答える
-2

大丈夫です。これはネットワーク操作ではありません。

編集:「大丈夫」とは、メインスレッドでネットワークI / Oを実行する場合のように、Android4.xがアプリを強制終了しないことを意味します。クエリ時間に応じて、UIスレッドを停止することが適切な場合と適切でない場合があります。「主キーによって単一のテーブルから単一の行を取得する」種類のクエリの場合、これはまったく問題ありません。1秒以上かかる厄介なクエリの場合は、バックグラウンドスレッドと進行状況ダイアログを検討してください。

于 2012-08-01T00:52:08.547 に答える