小编Jar*_*rek的帖子

Android:后台的SQLiteCursor/SimpleCursorAdapter

我的问题与Android有关.我有以下代码(省略了非相关部分):

public class MyActivity extends ListActivity {
    protected void onResume() {
        super.onResume();
        new UpdateTask().execute();
    }

    private class UpdateTask extends AsyncTask<Object, Object, ListAdapter> {
        protected ListAdapter doInBackground(Object... params) {
            SQLiteCursor cursor = db.getSomeData();
            startManagingCursor(cursor);
            SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, ..., cursor, ..., ...);
            return adapter;
        }

        protected void onPostExecute(ListAdapter result) {
            listView.setAdapter(result);
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

这会导致RuntimeException - "无法在实例化SimpleCursorAdapter的行中创建未调用Looper.prepare()的线程内的处理程序".

我理解为什么会发生这种情况,我只是不知道如何修复它(将它保存在一个单独的线程中).我找到了这个帖子:

http://groups.google.com/group/android-developers/browse_thread/thread/34d0069bb2de925e?fwc=2

但我真的不明白答复.我没有谷歌任何涉及SQLiteCursor和AsyncQueryHandler的例子.

你能帮忙吗?谢谢.

database multithreading android background adapter

3
推荐指数
1
解决办法
1914
查看次数

标签 统计

adapter ×1

android ×1

background ×1

database ×1

multithreading ×1