如何讓Android服務與活動進行通信我正在編寫我的第一個Android應用程序,并試圖在服務和活動之間進行溝通。我有一個服務,將運行在后臺,并做一些GPS和基于時間的日志記錄。我將有一個活動,將用于啟動和停止服務。因此,首先,我需要能夠確定服務在活動啟動時是否正在運行。這里還有一些其他的問題,所以我想我可以弄清楚(但請隨時提供建議)。我真正的問題是:如果活動正在運行,并且服務已經(jīng)啟動,我需要一種讓服務向活動發(fā)送消息的方法。這一點上的簡單字符串和整數(shù)-狀態(tài)消息主要是。消息不會定期發(fā)生,所以我不認為輪詢服務是一個很好的方式,如果有其他方式。我只希望在用戶啟動該活動時進行此通信-我不希望從服務中啟動該活動。換句話說,如果您啟動了該活動,并且服務正在運行,那么當發(fā)生一些有趣的事情時,您將在ActivityUI中看到一些狀態(tài)消息。如果您不啟動該活動,您將不會看到這些消息(它們沒有那么有趣)。似乎我應該能夠確定服務是否正在運行,如果是的話,將活動添加為偵聽器。然后,在活動暫?;蛲V箷r,以偵聽器的身份刪除該活動。這真的有可能嗎?我能找到的唯一方法是讓活動實現(xiàn)Parcelable并構建一個AIDL文件,這樣我就可以通過服務的遠程接口傳遞它。不過,這似乎有點過火了,我不知道該活動應該如何實現(xiàn)writeToPackcel()/readFromPackcel()。有沒有更簡單或更好的方法?謝謝你的幫助。編輯:對于以后對此感興趣的人,有來自Google的示例代碼,用于通過示例目錄/apis/app/RemoteService.java中的AIDL處理這個問題。
如何讓Android服務與活動進行通信
炎炎設計
2019-06-20 10:55:26