1

お時間をいただきありがとうございます。うまくいけば、私はできるだけ明確にすることができますが、それができない場合は事前にお詫び申し上げます.

状況: ローカル データベースを処理するマルチスレッド Android アプリケーションを作成しています。同期/並行性の理由から、特定のアクティビティが Cursor をまったく処理しないようにしたいと考えています。ただし、現時点では、CursorAdapter を使用してデータベースからのデータを画面に表示します。

質問: Cursor を使用せずに SimpleCursorAdapter の機能を複製するにはどうすればよいでしょうか (カーソルを開くと同時実行エラーが発生するため)。

(オブジェクトの ArrayList を使用するのが最も効果的です。私は既にそれを使って遊ぶ準備ができているからです。)

ありがとうございました。私は固執し、必要に応じてすべてを明確にします。

4

1 に答える 1

0

役に立つかもしれない何か:

非同期スレッドでスレッドセーフな方法で (つまり、予想どおりに) カーソルを処理する場合は、runOnUiThread を使用してみてください: http://developer.android.com/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable ) )

コードは次のとおりです。

activity.runOnUiThread(new Runnable() {
           @Override
           public void run() {
               //Paste code here
           }
       });

このコードは、onPreExecute や doInBackground などの AsyncTask オーバーロードの 1 つに含まれます。

これにより、スレッドセーフでないコードをよりスレッドセーフな方法で実行できる場合があります。

これが役立つことを願っています!

于 2011-06-30T19:40:48.233 に答える