AsyncTask:我在后台线程中删除了所有可能的 ui 操作,运行 5 或 6 次后仍然出现这种异常。请帮我。
java.lang.IllegalStateException:适配器的内容已更改,但 ListView 没有收到通知。确保适配器的内容不是从后台线程修改的,而只是从 UI 线程修改的。[在带有适配器的 ListView(2131427449, class android.widget.ListView) 中...
AsyncTask:我在后台线程中删除了所有可能的 ui 操作,运行 5 或 6 次后仍然出现这种异常。请帮我。
java.lang.IllegalStateException:适配器的内容已更改,但 ListView 没有收到通知。确保适配器的内容不是从后台线程修改的,而只是从 UI 线程修改的。[在带有适配器的 ListView(2131427449, class android.widget.ListView) 中...
Try to call notifyDataChanged()
or requestLayout();
from your UI
Thread.
好的,它有效。我在发布进度时使用了一个处理程序来添加项目(即 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;
}
}
};