「和時計」(略してJTT)を表示するアプリケーションを書いています。いくつかのコンポーネント(通知、ウィジェット、アプリケーション自体、アラーム)があり、それらはすべて同じデータ(現在のJTT)を使用します。
私の現在のバージョンは、すべての計算を実行する単一のサービスを使用し、ハンドラーを使用して、「ティック」、模倣について全員に通知しACTION_TIME_TICK
ます。
ただし、アラームを使用する場合は、「通常の時間」をJTTに、またはその逆に変換する方法も必要です。計算はCPUにかなりの負荷がかかるため(すべて日の出と日の入りに基づいています)、すべてを1つの場所で実行してからキャッシュすることをお勧めします(日の出と日の入りの時刻を知っているものの計算はそれほど重くありません)。
だから私は今それをするいくつかの方法があります:
- すべてを稼働させてください
- そして、バインディングを使用して、必要なデータを要求します。実際にはすでに1つのケースで行われており、非同期応答を処理する必要があるため、少し面倒に思えます
- コンテンツプロバイダーに移動する
- ブロードキャストの代わりにコンテンツオブザーバーを使用します
- またはプロバイダーからブロードキャストを送信します
- 両方の方法を組み合わせる
- コンテンツプロバイダーを使用してサービスのデータを計算し、サービスは必要に応じてデータをブロードキャストします
どちらが良いでしょうか?多分何か他のもの?