2010-11-19 3 views
0

私はアプリケーションをコンポーネントに再設計したいので、将来的にはモジュール化して再利用する方が簡単ですが、アプリケーションを設計したことはありません。 。ここでAndroidコンポーネントベースのアプリケーションデザイン:このモデルをどのように表現する必要がありますか?

は、アプリケーションの簡単な説明です:

  • アプリケーションの目的は、ユーザーがデバイスにローカルに保存し、ネットワーク経由で送信しようとしている「イベント」を作成できるようにすることです。

  • ユーザーは、2つのアクティビティを介してアプリケーションとやり取りできます。新しいイベントを作成できる「NewEventActivity」と、以前に作成したイベントを参照できる「LogbookActivity」。

  • ローカルストレージは、イベントが特定のバイナリ形式で送信されなければならないのSQLiteデータベース

  • によって処理されなければなりません。

  • その他のアプリケーションでは、送信コンポーネントを使用して、同じ形式で他の種類のメッセージをフォーマットして送信できる必要があります。

この図は、コンポーネントの構成方法を表しています。ボックスはコンポーネントを表し、矢印はそれらのコンポーネントがないインタラクションを表します。ここで alt text

私の質問です:

  • は、このモデルはOKになりますか?改善できるものが見えますか?
  • 私のSQLiteHelperはContentProviderかContentResolverですか?
  • Signalの種類ごとに1つのBroadcastReceiverクラスを作成するか、アプリケーションで処理できるすべての種類の信号を処理する1つの大きなBroadcastReceiverを作成する必要がありますか?

ありがとうございます!

答えて

0

設計簡素化するためのいくつかの提案:EventWriterEventReaderが唯一の直接ユーザーとの対話のために活動して対話する場合

  • を、彼らがBroadcastReceiversである必要はありません。実際、彼らは単に活動の方法である可能性があります。

  • イベントを送信するときに選択した方法に応じて、あなたはまた、定期的にコンテンツプロバイダをポーリングし、送信するデータのどの部分を選択しますIntentServiceMessageFormatterSenderをリファクタリングできます。アラーム経由でIntentServiceをスケジュールすることができます。

私SQLiteHelperは のContentProviderまたはContentResolverのことでしょうか?

(データへのアクセスを提供するため)ContentProviderを実装する必要があります。

私は信号の種類ごとに1 BroadcastReceiver クラスを作成する必要があります、または私は は私 アプリケーションが処理できる信号のすべての種類を扱うことを一つの大きなBroadcastReceiverを作成 必要がありますか?

信号タイプごとに1つの受信機に向かって傾いていますが、それは本当に好みです。

+0

ご回答ありがとうございます。 EventWriterとEventReaderは、現時点でアクティビティのメソッドです。私のアプリケーションは実際にはもっと複雑で、いくつかのアクティビティを使用しているため、それらを関連付けたいと思います。 (そして、将来これは他のアプリから利用可能になるはずです)。 IntentServiceを使用できないように、イベントはリアルタイムで送信する必要があります。 – nbarraille

関連する問題