我有一個前臺服務正在處理來自位置管理器的gps位置。我將這些存儲在通用的「位置控制器」單例中。目前我的活動也在訪問此課程。這可以接受嗎?使用處理程序消息似乎更有效。使用共享的singelton類在活動和前臺服務之間進行通信是可以接受的嗎?
1
A
回答
0
它沒有什麼不對,只要你是很確定你不會引入任何內存泄漏。其他現有的消息總線解決方案,如LocalBroadcastManager
(來自Android支持庫),Otto和親屬在幕後使用單身。
我會建議你使用LocalBroadcastManager
或Otto或者只是因爲它們更好的支持和測試而不是你自己的。 T
0
對於這種特殊情況,由於您希望頻繁更新應傳遞給activity
的位置;我會說bind
到位置服務可能是一個更合適的解決方案。
所以基本上,你的活動onResume
你bind
的服務,並通過一個listener
對象到service
每當位置更新的存在,將被調用。此外,您應該unbind
與服務。
要知道,以開始服務之前綁定所以它繼續運行,如果該活動是在前景不再。
我有非常相似的情況下,這種解決方案工作得很好,它使您能夠在service
如getLastLocation()
添加一個方法,可以從活動按需調用。
相關問題
- 1. 我可以在活動和服務之間使用greenrobot EventBus進行通信嗎?
- 2. android:在後臺運行服務和活動之間的通信
- 3. 服務和活動之間的通信
- 4. android在遠程服務和活動之間進行通信
- 5. 使用廣播/意圖在服務和活動之間進行通信
- 6. 服務和活動之間的通信使用不同的進程使用PendingIntent
- 7. 我可以使用套接字在Java和C#之間進行通信嗎?
- 8. android在活動和廣播接收器之間進行通信
- 9. 與活動的服務進行通信
- 10. 共享類之間的可變信息
- 11. Android Auto - 後臺服務與活動之間的通信
- 12. 在本地服務和託管活動之間共享數據
- 13. 在服務和活動之間共享數據
- 14. 在服務和活動之間共享數據
- 15. 在活動和服務之間共享數據android
- 16. 在活動和服務之間共享偏好
- 17. 在活動和服務之間共享數據庫
- 18. 線程之間可以通過LINX通信進行通信嗎?
- 19. 在Windows服務和Exchange服務器之間進行通信
- 20. 通過接口的類和活動之間的通信
- 21. 您可以在WCF服務和託管它的Windows服務之間進行通信嗎?
- 22. IBM Worklight - SQLite可以用於在Android服務和Webview之間共享數據嗎?
- 23. 在VC++和Qt應用程序之間使用共享內存進行通信
- 24. 是否可以在多個Web服務器之間共享HttpRuntime.Cache?
- 25. C#如何在兩臺服務器之間進行通信
- 26. 如何在後臺服務之間進行通信
- 27. Android中的活動和服務之間的通信方法
- 28. Windows服務和網絡服務之間的進程間通信
- 29. 如何共享Akka微服務之間的通信模型?
- 30. 我可以使用鏈接的活動目錄服務器進行更新嗎?
同意。單身人士總是一種選擇,但幾乎從不是最優的。 – 2013-02-24 21:48:05