簡體   English   中英

將活動綁定到android中正在運行的服務

[英]Binding activity to a running service in android

我有一個在啟動時啟動的服務S. 它有一個contentobserver C,它啟動一個intentservice X進行一些處理。 默認活動A由用戶啟動。

我想知道是否可以將A綁定到正在運行的服務S而不停止它,這樣我就可以將結果接收器R傳遞給S,而S又必須傳遞給X.

我想實現這一點,這樣我就可以再次啟動X,這次是從C中解放出來的,來自綁定服務S,R作為一個可以包含的額外內容。 通過R,只要它運行,就會在A中更新進度對話框。

在嘗試使用resultreceivers之前,我正在使用通知,即支持庫中的通知。 但問題是我正在為循環的每次迭代構建並再次顯示它們。 警報聲重復播放了300多次,令人不快。

試過我的廣播節目,但我有一些糟糕的經歷。 所以把它們扔掉了。

有沒有其他辦法解決這個問題? 如果有辦法通過再次構建通知來更新通知,我的問題就可以解決了。

我正在使用4.1.1 build,API 16,其中似乎不推薦使用setlatesteventinfo。

我仍然願意回到更新正在運行的通知的想法。 或者不同的解決方法。 任何幫助將不勝感激。

編輯:

使用通知是實現此應用程序的一種方法,其中不需要結果接收器和ibinder接口。

我在API級別16中找不到setlatesteventinfo。我正在嘗試使用v4支持庫。 在我的實現中,我為循環的每次迭代構建了一個新通知。 但是我還沒有找到一種方法來保持聲音僅在第一次發出警報而不是其余部分。 有沒有人成功正確更新通知?

我想知道是否可以將A綁定到正在運行的服務S而不停止它

這當然是可能的。 正如Hoan指出的那樣,您需要從您的活動中調用bindService()。 本文提供了一些有關如何執行此操作的示例代碼。

至於你的其余問題,它似乎可以分解為幾個新問題。 很難理解並立即回答所有問題。

綁定服務的Android文檔說:

第三個參數是一個標志,指示綁定的選項。 它通常應該是BIND_AUTO_CREATE,以便在服務尚未生效時創建服務。

仍然必須確認服務S的onCreate()不會再被調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM