Android ListView赢得';即使调用notifyChange(uri,null),也不会更新;通过内容提供商

Android ListView赢得';即使调用notifyChange(uri,null),也不会更新;通过内容提供商,android,android-contentprovider,android-cursoradapter,Android,Android Contentprovider,Android Cursoradapter,当新数据添加到内容提供程序时,尝试刷新ListView时遇到问题 在阅读关于这个问题的类似文章时,我确保使用getContext().getContentResolver().notifyChange(uri,null)在我的插入方法和 c.setNotificationUri(getContext().getContentResolver(),uri)在我的查询方法上(谈论内容提供者类) 我在活动中实现LoaderManager.LoaderCallbacks: @Override

当新数据添加到内容提供程序时,尝试刷新ListView时遇到问题

在阅读关于这个问题的类似文章时,我确保使用
getContext().getContentResolver().notifyChange(uri,null)在我的插入方法和
c.setNotificationUri(getContext().getContentResolver(),uri)在我的查询方法上(谈论内容提供者类)

我在活动中实现
LoaderManager.LoaderCallbacks

    @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);
    }
}
@覆盖
公共加载器onCreateLoader(int-id,Bundle-args){
返回新的游标装入器(ChatWindowActivity.this,
DatabaseContentProvider.getConversationUri(conversationId),
投影,空,空,空);
}
@凌驾
public void onLoadFinished(加载器、光标数据){
开关(loader.getId()){
案例加载器\u ID:
mAdapter.swapCursor(光标);
打破
}
}
@凌驾
公共void onLoaderReset(加载器){
mAdapter.swapCursor(空);
}
}
我正在使用一个自定义游标适配器,它被
getItemViewType
getViewTypeCount
newView
bindView
覆盖(类扩展
CursorAdapter

在我的服务中,我调用
service.getContentResolver().insert(…,values)
,但是除非我关闭并重新打开应用程序,否则活动列表视图不会更新


这可能是什么原因造成的?

我已经设法解决了这个问题,但在这里发布,以防将来对某人有所帮助

问题在于
getContext().getContentResolver().notifyChange(uri,null)。内容提供商将仅通知特定的URI发生了更改

因此,我必须确保
CursorLoader
和insert调用在完全相同的URI上工作,这样才能工作。即使是像“
/contacts/1
”到“
/contacts
”这样的微小差异也不会通知光标它已更改