1

キーにスラッシュ「/」が含まれるコンテンツプロバイダーを作成しようとしています。私はそれについてかなり長い間検索しましたが、それを説明する場所/例はありません。

content://com.lily.provider/items/ *

私が理解している一般的な例: content://com.lily.provider/items/ab

私がやりたいこと:私のキーは「
/」content://com.lily.provider/items/a/bを含む文字列です。 ここで、a / bはアイテムIDであり、abと同じ位置にあります。

私の質問:

  1. content://com.lily.provider/items/a/bはcontent://com.lily.provider/items/ *と一致しますか?何故ですか?
  2. 問題を解決するために使用できる回避策はありますか
4

1 に答える 1

2

content://com.lily.provider/items/a/b は content://com.lily.provider/items/* と一致しますか? 何故ですか?

はい、一致します。アスタリスク*は、「スラッシュを含む任意の文字に一致する」ことを意味します。

問題を解決するために使用できる回避策はありますか

既知のプレフィックスに一致させたい場合は、URI マッチャーにエントリを (この順序で) 追加するだけです。

  • content://com.lily.provider/items/a/*
  • content://com.lily.provider/items/b/*
  • content://com.lily.provider/items/*

データにスラッシュが必要な場合は、パスの区切り記号として使用されていないスラッシュを URI エンコードする%2f必要があります。

そうでなければ、何が問題なのかわかりません。" /items/a/b" URI は必要に応じて元のパターンと一致し、必要に応じて URI のパス コンポーネントを解析できます。

于 2010-10-13T21:20:04.383 に答える