2016-08-13 67 views

回答

1

你有兩個不同的問題:

  1. 你如何從服務過程中對UI處理數據?

  2. 如何從您爲#1所做的任何操作獲得數據的任何部分都需要該數據?

有任何數量的對#1的解決方案:PendingIntentResultReceiverMessenger,AIDL定義的回調用於綁定的服務連接等#2,則大多是使用事件總線或類似的東西的問題以提醒所有相關的Java對象有關新數據。

因此,舉例來說,這裏是使用這個PendingIntent一個現成的,袖口配方:

  1. 實現一個BroadcastReceiver或在活動過程中,清單註冊Service,但沒有<intent-filter>

  2. 作爲調用startService()的一部分,創建使用PendingIntentgetBroadcast()getService()工廠方法,與Intent標識您BroadcastReceiverService,並把該PendingIntent一個額外的與使用IntentstartService()

  3. 你在其他流程服務,當它有數據要發送到活動過程中,calls send() on the PendingIntent,包括Intent有數據填充到廣播或服務請求

  4. BroadcastReceiver或步驟#1 Service需要交付給它的Intent和使用事件總線,讓您的活動過程的其餘部分知道不管發生什麼事情,也處理的情況下沒有在活動公關(例如,如果所有活動都被破壞,則籌集Notification

+0

感謝您的幫助!會試試這個。 – VishalKale

+0

謝謝@CommonsWare。工作沒有任何問題。在PendingIntent和BroadcastReceiver的幫助下從服務過程中獲得數據。使用EventBus進一步將數據傳輸到UI組件。 – VishalKale

相關問題