2

UriMatcherカスタムhttpリンクを一致させるために使用したいと思います。

私は次のコードを持っています:

UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
mUriMatcher.addURI("myLink", "http://a.b.c/?id=", 1);
mUriMatcher.addURI("myLink", "http://d.e.f/?id=", 2);
int match = mUriMatcher.match(Uri.parse("http://a.b.c/?id=123"));

しかし、私は常に試合結果で「-1」を取得します...

4

1 に答える 1

5

UriMatcherは、次の形式のUrisと一致します。

scheme://<authority>/<path>

クエリ文字列を無視します(URLの?の後に表示されるもの)

以下を使用してマッチャーに登録します。

mUriMatcher.addURI(authority, path, result);

したがって、上記の簡単な例では、クエリ文字列がある場合とない場合で同じURLを区別することはできませんが、ドメイン名で一致させることはできます。使用する:

mUriMatcher.addURI('a.b.c', '/', 1);
mUriMatcher.addURI('d.e.f', '/', 2);

各マッチハンドラー内でUrlQuerySanitizerを使用して、必要なクエリが存在するかどうかを判断できます。

于 2011-03-02T23:08:10.687 に答える