2

假设你有一个CONTENT_URI内部ContentProvider你想要做一些复杂的事情并返回一个 Cursors ( MergeCursor) 的组合而不是一个简单的单个Cursor.

碰巧的是,如果您将通知设置URI在 中MergeCursor而不是光标上MergeCursor,则通知将不起作用。

初始代码:

            Cursor[] cursors = { extraCursorBefore, usersCursor, extraCursorAfter };
            Cursor extendedCursor = new MergeCursor(cursors);
            // Make sure that potential listeners are getting notified
            extendedCursor.setNotificationUri(getContext().getContentResolver(), CONTENT_URI_PEOPLE);
            return extendedCursor;

PS:如果无论如何,有人有其他想法,或者弄清楚为什么这在原版上不起作用MergeCursor,那么请分享你的知识。

4

1 回答 1

2

因此,您需要在结果中URI设置Cursor通知MergeCursor

实际工作的代码:

            Cursor[] cursors = { extraCursorBefore, usersCursor, extraCursorAfter };
            Cursor extendedCursor = new MergeCursor(cursors);
            // Make sure that potential listeners are getting notified
            usersCursor.setNotificationUri(getContext().getContentResolver(), CONTENT_URI_PEOPLE);
            return extendedCursor;
于 2013-03-20T13:28:44.100 回答