唤醒手机并触摸显示屏后,我收到以下错误消息:
java.lang.IllegalStateException:适配器的内容已更改,但 ListView 没有收到通知。确保适配器的内容不是从后台线程修改的,而只是从 UI 线程修改的。[在 ListView(2131230724, class eu.erikw.PullToRefreshListView) 和 Adapter(class android.widget.HeaderViewListAdapter)]
所以,我已经在代码中找到了这个错误消息的位置:
public class PullToRefreshListView extends ListView{
...other code...
@Override
public boolean onTouchEvent(MotionEvent event){
// it also crashes although I make this check
if( !( Looper.getMainLooper().equals(Looper.myLooper()) ) )
return true;
... other code in this method...
return super.onTouchEvent(event); <-- it crashes exactly here at the end of the whole method
}
所以,我检查我是否在 uithread 上并且它仍然崩溃?所以可能我在这条 if 行做错了什么?此外,由于这是一个扩展列表视图的类,我无法使用
activity.runOnUiThread(new Runnable(){
// runnable code here.
});
所以我的问题是:我该如何修复它?目前我不知道...