-1

AsyncTask:我在后台线程中删除了所有可能的 ui 操作,运行 5 或 6 次后仍然出现这种异常。请帮我。

java.lang.IllegalStateException:适配器的内容已更改,但 ListView 没有收到通知。确保适配器的内容不是从后台线程修改的,而只是从 UI 线程修改的。[在带有适配器的 ListView(2131427449, class android.widget.ListView) 中...

4

2 回答 2

1

Try to call notifyDataChanged() or requestLayout(); from your UI Thread.

于 2012-06-28T15:28:32.367 回答
0

好的,它有效。我在发布进度时使用了一个处理程序来添加项目(即 AsyncTask + Handler):

private void addAdapter(Item item)
{
    Message message = addhandler.obtainMessage();
    message.what = 1;
    message.obj = item;
    addhandler.sendMessage(message);
}

private Handler addhandler = new Handler() {
    public void handleMessage(Message msg)
    {
        switch (msg.what) {
        case 1:
            if (msg.obj != null) {
                _adapter.add((Item) msg.obj);
            }
            break;
        default:
            break;
        }
    }
};
于 2012-07-06T04:58:52.470 回答