2011-01-07 57 views
1

我有一個動態壁紙,我想與同一包中的活動進行交流。我從來沒有做過任何有關服務的工作。我可以使用Local Service pattern,還是我受限制,因爲我的服務是動態壁紙,需要使用Intents或AIDL?Android中的活動/動態壁紙通信

我認爲流動會去這樣的事情,請大家指正在我的過程可能失敗:

  1. 預覽從動態壁紙選擇器
  2. 動態壁紙走進我的自定義設置活動
  3. 點擊一個「屏幕截圖」按鈕或首選項打開一個「屏幕截圖」活動
  4. 發送消息到我的牆紙,要求屏幕截圖位圖被渲染
  5. 沃爾瑪lpaper服務接收該消息並使得其當前的視覺效果的位圖在應用程序的數據目錄
  6. 牆紙將消息發送回活動指示位圖
  7. 活性接收到該消息的成功和位置,裝載從位圖給定的位置,並將其顯示給用戶進行進一步處理/共享

我不確定的部分是消息在4-7中傳遞。

回答

1

這是我最終做的。我的主要目標是讓我的動態壁紙創建其內容的屏幕截圖。我不需要當前預覽或主屏幕上實際顯示的任何內容,只是基於當前共享首選項的渲染。

我把壁紙服務的渲染方面分解成了一個單獨的類。我的壁紙服務包含此渲染類的實例,並通過調用此渲染器,動態壁紙功能正常。破碎的類允許我從任何其他活動實例化獨立的渲染器,我可以向其發送位圖。渲染器然後簡單地繪製指向提供的位圖的畫布,而不是通常情況下從壁紙服務提供的畫布