[i][b]06-21 12:00:02.473: ERROR/AndroidRuntime(29916): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131034122, class android.widget.ListView) with Adapter(class android.widget.SimpleAdapter)][/b][/i]
说明了,adapter里面的数据更新(content)不能在在后台,否则会概率性的报错。
可能后台listview adapter会定时看content有否更新。总之
[color=red]Make sure the content of your adapter is not modified from a background thread, but only from the UI thread.[/color]
看过了
count是创建、更新或者notify时候存的
所以渲染之前如果改了adapter的size,那,shi吧
说明了,adapter里面的数据更新(content)不能在在后台,否则会概率性的报错。
可能后台listview adapter会定时看content有否更新。总之
[color=red]Make sure the content of your adapter is not modified from a background thread, but only from the UI thread.[/color]
看过了
if (mItemCount == 0) {
resetList();
invokeOnItemScrollListener();
return;
} else if (mItemCount != mAdapter.getCount()) {
throw new IllegalStateException("The content of the adapter has changed but "
+ "ListView did not receive a notification. Make sure the content of "
+ "your adapter is not modified from a background thread, but only "
+ "from the UI thread. [in ListView(" + getId() + ", " + getClass()
+ ") with Adapter(" + mAdapter.getClass() + ")]");
}
count是创建、更新或者notify时候存的
public void onChanged() {
mDataChanged = true;
mOldItemCount = mItemCount;
mItemCount = getAdapter().getCount();
// Detect the case where a cursor that was previously invalidated has
// been repopulated with new data.
if (AdapterView.this.getAdapter().hasStableIds() && mInstanceState != null
&& mOldItemCount == 0 && mItemCount > 0) {
AdapterView.this.onRestoreInstanceState(mInstanceState);
mInstanceState = null;
} else {
rememberSyncState();
}
checkFocus();
requestLayout();
}
所以渲染之前如果改了adapter的size,那,shi吧