Android:由于并发问题,我无法使用CursorAdapter。我该怎么做呢?

时间:2011-06-30 19:16:32

标签: android concurrency thread-safety cursor simplecursoradapter

谢谢你的时间。 希望我能尽可能地清楚,提前道歉,直到我没有这样做。

情况: 我正在创建一个处理本地数据库的多线程Android应用程序。出于同步/并发原因,我希望特定活动与Cursor完全没有任何交易。但是,现在它使用CursorAdapter在屏幕上显示来自db的数据。

问题: 如何在不使用Cursor的情况下复制SimpleCursorAdapter的功能(因为打开游标会引入并发错误)?

(使用对象的ArrayList会起到最佳效果,因为我已经准备好了它。)

谢谢。我会坚持下去并根据需要澄清一切。

1 个答案:

答案 0 :(得分: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
           }
       });

此代码将进入其中一个AsyncTask重载,例如onPreExecute或doInBackground。

这可能允许您以更线程安全的方式运行非线程安全的代码。

我希望这有帮助!