複数のコンテンツプロバイダーの登録
複数のコンテンツプロバイダーのauthoritiesを1つのContentProviderクラスを継承した自分のコンテンツプロバイダーにマッピングすることができます。AndroidManifest.xmlの書き方はこのようになります。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sample" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > 略 <provider android:authorities="com.sample.task" android:name="com.sample.DataProvider"></provider> <provider android:authorities="com.sample.project" android:name="com.sample.DataProvider"></provider> <provider android:authorities="com.sample.comment" android:name="com.sample.DataProvider"></provider> </application> </manifest>
何がうれしいかと言うと、ここではcom.sample.DataProviderにはテーブルや依存したコードはもっておらず、外から指定するコンテントプロバイダーのURI(content://com.sample.task/など)に応じて処理を切り替えるような書き方ができます。