我正在寫一個顯示「日本傳統時間」(簡稱JTT)的應用程序。有幾個組件(通知,小部件,應用程序本身,警報)都使用相同的數據 - 當前的JTT。ContentProvider或Service?
我現在的版本使用一個單一的服務,做所有的計算和使用一個處理程序來通知大家關於「滴答」,模仿ACTION_TIME_TICK
。
然而,隨着報警我也需要有一種方法來「平時」翻譯成JTT,反之亦然。該計算是相當CPU重(這是所有基於日出和日落),因此我喜歡有它全部在一個地方完成,然後緩存(計算的東西知道日出和日落時間是不重)。
所以我有幾個方法可以做到,現在:
- 保持完整的服務
- 並使用綁定來請求我需要的數據。它實際上已經在一種情況下完成的,似乎有點麻煩,因爲我要處理異步響應
- 移動到內容提供商
- 並利用內容的觀察員,而不是廣播
- 或者從供應商 發送廣播消息,
- 結合兩種方式
- 使用內容提供商,以計算服務,這反過來將它播出時需要的數據ED
這將是更好?也許別的東西?
現在,我使用'Messenger'與服務進行通信,所以從綁定的服務請求數據創建一個郵件併發送,然後讓我自己'Handler'響應。 – aragaer
但我會考慮同步通信,感謝這個想法。 – aragaer
啊,我明白了。我正在考慮一個基於AIDL的服務,您只需在本地存根上調用方法,從而獲得同步調用。 –