6

私はアンドロイドのコンテンツプロバイダーからの公式ドキュメントを読んでいますが、これを見ました:

コンテンツ プロバイダーが必要かどうかを判断します。

次の機能を 1 つ以上提供する場合は、コンテンツ プロバイダーを構築する必要があります。

  • 複雑なデータやファイルを他のアプリケーションに提供したい。
  • ユーザーが複雑なデータをアプリから他のアプリにコピーできるようにしたいと考えています。
  • 検索フレームワークを使用して、カスタム検索候補を提供したいと考えています。
  • 完全に独自のアプリケーション内で使用する場合は、SQLite データベースを使用するためにプロバイダーは必要ありません。

IntentService を介して位置が変更されたときにバックグラウンドでデータを同期するアプリを開発しています。

私が見たのは、 ContentProvider を使用すると、ユーザーが気付かずに本当に必要なデータがいつ変更されるかを観察できることです。IntentService で変更され、MainActivity がこの変更を監視し、通知されると、レイアウトのコンテンツが変更されます

彼らはこれについて言及していませんが、ContentProvider を使用することは素晴らしい考えですか?

ありがとう

4

1 に答える 1

13

個人的には、過去 1 年半の間、すべてのプロジェクトで ContentProviders を使用してきました。これらは、データベースに依存しない優れたデータ抽象化を提供して、データにアクセスします。それらは非常に柔軟です。1 つの URI が SharedPreference を指し、他のすべての URI がデータベース テーブルにアクセスするプレイ プロジェクトさえありました。ContentProviders を使用すると、たとえば、CursorLoaders などの構築済みのフレームワーク インフラストラクチャを使用することもできます。インターフェイスと抽象クラスから独自のものを実装することはそれほど難しくありませんが、時間がかかり、エラーが発生しやすい可能性があります。すでに試行およびテストされた作業を活用できることは大きな利点です。

ところで、2 週間ほど前に google+ に掲載された投稿で、Cyril Mottier が非常に良い回答をしたのとまったく同じ質問を覚えています。ここで読むことができます。

于 2013-02-24T21:14:00.247 に答える