最初の ContentProvider を実装中です。私はかなり経験が浅いので、私の一般的な設計が適切かどうかを確認したかったのです。
だから、これらは私の要件です:
- 元のデータを提供する Web サービスは、保持しているデータを 1 日に 1 回更新する場合があります。このようなバージョンの変更を確認できます。
- アプリの観点から見ると、データは読み取り専用です (天気や株価のデータを考えてみてください)。
- アプリケーション ドメインからクエリを受け取り、それらを一致する HTTP リクエストに変換し、ドメイン オブジェクトを非同期的に返すことができるクラスが既にあります。ご想像のとおり、これはアプリがアクティビティから直接データを取得するために現在使用しているものです。
- 今、私はもっとうまくやって、
ContentProvider
データをローカルに永続化するために採用したいと思っています。 - 1 日 1 回、アプリは を起動
Service
し、サーバー上のデータ バージョンをチェックし、必要に応じて に含まれるデータを更新しますContentProvider
。
思いついたのは以下のデザインです。
矢印は、コードの依存関係ではなく、データ フローを示します。
気がついたのですが、カーソルをドメイン オブジェクトに変換するために の上にレイヤーを追加するのを忘れていましたが、これらの詳細を無視して、これはアプリのアーキテクチャにContentProvider
を追加する適切な方法だと思いますか?ContentProvider
どんなアドバイスでも大歓迎です!