在不同的進程中進行通信我從一個在調用startService()
後被破壞的片段開始了前臺服務,這是我不能使用ResultReceiver
或Messanger
的原因。所以選項仍然是PendingIntent
。如何使用PendingIntent在前臺服務(在不同進程中託管)與任何活動/片段之間進行通信?服務和活動之間的通信使用不同的進程使用PendingIntent
1
A
回答
1
你有兩個不同的問題:
你如何從服務過程中對UI處理數據?
如何從您爲#1所做的任何操作獲得數據的任何部分都需要該數據?
有任何數量的對#1的解決方案:PendingIntent
,ResultReceiver
,Messenger
,AIDL定義的回調用於綁定的服務連接等#2,則大多是使用事件總線或類似的東西的問題以提醒所有相關的Java對象有關新數據。
因此,舉例來說,這裏是使用這個PendingIntent
一個現成的,袖口配方:
實現一個
BroadcastReceiver
或在活動過程中,清單註冊Service
,但沒有<intent-filter>
作爲調用
startService()
的一部分,創建使用PendingIntent
其getBroadcast()
或getService()
工廠方法,與Intent
標識您BroadcastReceiver
或Service
,並把該PendingIntent
一個額外的與使用Intent
startService()
你在其他流程服務,當它有數據要發送到活動過程中,calls
send()
on thePendingIntent
,包括Intent
有數據填充到廣播或服務請求你
BroadcastReceiver
或步驟#1Service
需要交付給它的Intent
和使用事件總線,讓您的活動過程的其餘部分知道不管發生什麼事情,也處理的情況下沒有在活動公關(例如,如果所有活動都被破壞,則籌集Notification
)
相關問題
- 1. 服務和活動之間的通信
- 2. 如何使用PendingIntent從服務通信到客戶端/活動?
- 3. android在遠程服務和活動之間進行通信
- 4. 我可以在活動和服務之間使用greenrobot EventBus進行通信嗎?
- 5. 使用廣播/意圖在服務和活動之間進行通信
- 6. Windows服務和網絡服務之間的進程間通信
- 7. 示例:使用消息傳送的活動和服務之間的通信
- 8. 服務器和移動應用程序之間的通信
- 9. Android中的活動和服務之間的通信方法
- 10. 如何使用WCF在應用程序和Windows服務之間進行通信?
- 11. android:在後臺運行服務和活動之間的通信
- 12. 活動和服務之間的通信改變片段(登錄)
- 13. 使用Amazon S3服務和Flash AS3的域之間的通信
- 14. 使用Parceble在活動之間進行通信
- 15. 使用WCF服務進行Windows移動和服務器通信?
- 16. 服務和活動通信
- 17. 使用共享的singelton類在活動和前臺服務之間進行通信是可以接受的嗎?
- 18. 在不同的線程,JVM和服務器之間使用Hibernate
- 19. 與活動的服務進行通信
- 20. 使用Windows服務和表單應用程序之間的套接字的進程間通信
- 21. 使用Win32服務進行進程間通信
- 22. 不同服務器上的Web服務之間的通信
- 23. 使用進程間通信
- 24. angularjs:使用服務在控制器之間進行通信
- 25. 使用Amazon SWF在服務器之間進行通信
- 26. Android:活動和服務之間使用的單身人士
- 27. 片段和活動之間的通信
- 28. 在使用服務和承諾的控制器之間進行通信
- 29. 如何使用XML在服務和表單之間進行正確的通信
- 30. 在Android上運行不同進程的服務之間的通信?
感謝您的幫助!會試試這個。 – VishalKale
謝謝@CommonsWare。工作沒有任何問題。在PendingIntent和BroadcastReceiver的幫助下從服務過程中獲得數據。使用EventBus進一步將數據傳輸到UI組件。 – VishalKale