1

我有两个 Uris。假设它们是:

content://myprovider/messages
content://myprovider/messages/#

在我扩展的 ContentProvider 中,我声明了以下内容:

    private static final int MESSAGES = 1;
    private static final int MESSAGES_ID = 2;

    private static final UriMatcher sUriMatcher;

    static {
        sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
        sUriMatcher.addURI("myprovider", "messages", MESSAGES);
        sUriMatcher.addURI("myprovider", "messages/#", MESSAGES_ID);
    }

当我使用...

content://myprovider/messages/#

...Uri 在调用任何 ContentProvider 方法时,比如插入,而我的 ContentProvider 方法执行...

sUriMatcher.match(uri)

...我回来了 1 (MESSAGES)。

为什么???

4

1 回答 1

1

如果你想得到MESSAGES_ID,uri 必须写成 likecontent://myprovider/messages/12345或者你必须为MESSAGES_IDlike 添加一个模式:

sUriMatcher.addURI("myprovider", "messages/*", MESSAGES_ID);
于 2010-11-10T05:57:39.417 回答