Android: я не могу использовать CursorAdapter из-за проблем с параллелизмом. Что я должен сделать вместо этого? - PullRequest
1 голос
/ 30 июня 2011

спасибо за ваше время.Надеюсь, я смогу быть настолько ясным, насколько это возможно, заранее извиняясь за то, что я не смог этого сделать.

Ситуация: Я создаю многопоточное приложение Android, которое работает с локальной базой данных,По причинам синхронизации / параллелизма я хочу, чтобы конкретное действие вообще не имело отношения к Курсору.Однако сейчас он использует CursorAdapter для отображения данных из БД на экране.

Вопрос: Как можно воспроизвести функциональность SimpleCursorAdapter без использования курсора (посколькуоткрытый курсор будет вводить ошибки параллелизма)?

(Лучше всего использовать ArrayList объектов, так как у меня уже есть тот, с которым можно поиграть.)

Спасибо.Я буду бродить вокруг и уточнять все по мере необходимости.

1 Ответ

0 голосов
/ 30 июня 2011

Что-то, что может быть полезно:

Если вы хотите иметь дело с курсорами потокобезопасным способом в асинхронном потоке (т.е. предсказуемо), попробуйте использовать 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.

Это может позволить вам запускать не поточно-безопасный код более поточно-безопасным образом.

Надеюсь, это поможет!

...