3

私のアプリには複数のsqliteデータベースがあり、それらはすべてコンテンツプロバイダーを介してエクスポートされ、他のアプリがデータを読み取れるようになっています。

すべてのデータベースを含む単一のコンテンツプロバイダー、または各データベースのコンテンツプロバイダーを使用する方がよいでしょうか。私の他のアプリは、一度に1つのデータベースにのみアクセスする必要があります。

注意:私は同様の投稿を読んだことがありますが、私のアプリは複数のデータベースを持つことができなければなりません。

4

2 に答える 2

4

よくあることですが:状況によって異なります:-)

ただし、複数のデータベースを使用する必要がある場合は、それらのデータベースに多かれ少なかれ無関係なデータが含まれている可能性があります。この場合、データベースごとに異なるContentProviderを使用します。これは懸念事項を明確に分離し、APIを理解しやすくします。

ところで:セキュリティを念頭に置いてください。アプリでデータのみを使用する場合は、権限に署名アクセスレベルを使用してください。

于 2013-04-08T12:42:35.653 に答える
0

@WolframRittmeyerの答えは、データベース内のデータが無関係である場合に進む方法です。

多くのソースからの同様のデータを公開したい場合はCursors、異なるデータベースからの複数を1つに埋め込むことを試みることができますMergeCursor

およびその他の関連するメソッドは、現在の位置getColumns()に応じて異なる結果を返す可能性があることに注意してください。MergeCursor

于 2015-04-14T08:49:42.560 に答える