0

以下のグーグルの例から

As an example of designing and coding content URI handling, consider a provider with the authority com.example.app.provider that recognizes the following content URIs pointing to tables:

content://com.example.app.provider/table1: A table called table1.
content://com.example.app.provider/table2/dataset1: A table called dataset1.
content://com.example.app.provider/table2/dataset2: A table called dataset2.
content://com.example.app.provider/table3: A table called table3.

私はここで混乱しています。この例は、Table1Contentprovider、Table2ContentProvider、Table3ContentProvider が同じオーソリティ URL を指していることを意味しますか? 私が読んだところによると、各プロバイダーには一意の機関 URL が必要です。

それとも、3 つのテーブルすべてで動作するプロバイダが 1 つしかないということですか? その場合、プロバイダーのクエリ メソッドで SQL クエリを実行して、3 つのテーブルすべてに関連するデータを取得しますか?

4

1 に答える 1

1

以下のグーグルの例から

実際には、あなたがリンクしたページではなく、このページからのものです。

この例は、Table1Contentprovider、Table2ContentProvider、Table3ContentProvider が同じオーソリティ URL を指していることを意味しますか?

プロバイダーは3 つではなく 1 つだけです (「プロバイダーと見なす」)。

私が読んだところによると、各プロバイダーには一意の機関 URL が必要です。

AContentProviderは、属性内のカンマ区切りのリストを介して複数の機関をサポートできandroid:authoritiesますが、ほとんどの場合は 1 つしかサポートしません。

それとも、3 つのテーブルすべてで動作するプロバイダが 1 つしかないということですか?

正しい。

その場合、プロバイダーのクエリ メソッドで SQL クエリを実行して、3 つのテーブルすべてに関連するデータを取得しますか?

のようなメソッドでは、提供されquery()た を調べてUri、提供されたパスに固有の操作を実行します。前述の例でquery()は、パスtable1table2/dataset1table2/dataset2、およびに対して異なることを行うように見えますtable3

于 2013-05-19T23:44:27.573 に答える