私のアプリには複数のsqliteデータベースがあり、それらはすべてコンテンツプロバイダーを介してエクスポートされ、他のアプリがデータを読み取れるようになっています。
すべてのデータベースを含む単一のコンテンツプロバイダー、または各データベースのコンテンツプロバイダーを使用する方がよいでしょうか。私の他のアプリは、一度に1つのデータベースにのみアクセスする必要があります。
注意:私は同様の投稿を読んだことがありますが、私のアプリは複数のデータベースを持つことができなければなりません。
私のアプリには複数のsqliteデータベースがあり、それらはすべてコンテンツプロバイダーを介してエクスポートされ、他のアプリがデータを読み取れるようになっています。
すべてのデータベースを含む単一のコンテンツプロバイダー、または各データベースのコンテンツプロバイダーを使用する方がよいでしょうか。私の他のアプリは、一度に1つのデータベースにのみアクセスする必要があります。
注意:私は同様の投稿を読んだことがありますが、私のアプリは複数のデータベースを持つことができなければなりません。
よくあることですが:状況によって異なります:-)
ただし、複数のデータベースを使用する必要がある場合は、それらのデータベースに多かれ少なかれ無関係なデータが含まれている可能性があります。この場合、データベースごとに異なるContentProviderを使用します。これは懸念事項を明確に分離し、APIを理解しやすくします。
ところで:セキュリティを念頭に置いてください。アプリでデータのみを使用する場合は、権限に署名アクセスレベルを使用してください。
@WolframRittmeyerの答えは、データベース内のデータが無関係である場合に進む方法です。
多くのソースからの同様のデータを公開したい場合はCursors
、異なるデータベースからの複数を1つに埋め込むことを試みることができますMergeCursor
。
およびその他の関連するメソッドは、現在の位置getColumns()
に応じて異なる結果を返す可能性があることに注意してください。MergeCursor