我在这里误解了什么吗?我正在尝试在 Android 中实现 ContentProvider,但由于某种原因,调用 URI 不匹配。在我的 ContentProvider 中,我定义了以下内容:
private static final int GET_COURSES = 100;
public static final Uri COURSES_URI = Uri.withAppendedPath(CONTENT_URI, CourseTable.NAME);
private static final UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
static
{
matcher.addURI(AUTHORITY, COURSES_URI.toString(), GET_COURSES);
}
然后,在我的查询调用中:
public Cursor query(Uri uri, ...)
{
int type = matcher.match(uri);
.
.
在这里,类型始终为 -1 ...在调试窗口中,我查看了传入的 uri 和 COURSES_URI 并且字符串表示形式相同...
有什么建议么?
谢谢
更新:
我使用以下方法调用内容提供者:
new CursorLoader(this, CoursesProvider.COURSES_URI, null, null, null, null);
...这让我难以置信...刚刚得到 uri.equals(COURSES_URI) == true,所以 UriMatcher 中的某些内容一定是不正确的