我在嘗試讓新的數據添加到內容提供商時刷新ListView以進行刷新時遇到了問題。即使我調用notifyChange(uri,null),ListView也不會更新;雖然內容提供商
閱讀在這個問題上相近崗位,我就確定我的查詢方法使用getContext().getContentResolver().notifyChange(uri, null);
我的插入方法和 c.setNotificationUri(getContext().getContentResolver(), uri);
(談論的內容提供商類)。
我實現LoaderManager.LoaderCallbacks<Cursor>
在我的活動:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(ChatWindowActivity.this,
DatabaseContentProvider.getConversationUri(conversationId),
PROJECTION, null, null, null);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
switch (loader.getId()) {
case LOADER_ID:
mAdapter.swapCursor(cursor);
break;
}
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
mAdapter.swapCursor(null);
}
}
而我使用的是getItemViewType
自定義光標適配器,getViewTypeCount
,newView
和bindView
覆蓋(類擴展CursorAdapter
)
在我的服務,我調用service.getContentResolver().insert(...,values)
,但活動ListView不會更新,除非我關閉並重新打開應用程序。
這可能是什麼原因造成的?