2013-02-20 118 views
2

我有一個服務S,在啓動時啓動。 它有一個內容服務器C,它啓動一個intentservice X來做一些處理。 默認活動A由用戶啓動。在android中綁定活動到正在運行的服務

我想知道是否有可能綁定到正在運行的服務S不停止它,這樣我可以通過一個resultreceiver R鍵s表示反過來又對被傳遞到X.

我想爲了達到這個目的,我可以再次啓動X,這次不需要C,而是從綁定的服務S中以R作爲可分派的附加。 通過R,每當它運行時,進程對話框都會在A中更新。

在使用resultreceivers運行我的運氣之前,我使用的是來自支持庫的通知。 但問題是,我正在構建併爲循環的每次迭代再次顯示它們。 警報聲重複播放了300次,這令人不快。

用廣播試了我的運氣,但我有一些不好的經歷。所以把它們扔掉了。

是否有其他解決此問題的方法? 我的問題可以解決,如果有一種方法來更新通知並重新構建它。

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

我仍然想回到更新運行通知的想法。 或另一種解決方法。 任何幫助將不勝感激。

編輯:

使用通知是實現這個應用程序中,就沒有必要對resultreceiver和的IBinder接口的方式。

我無法在API級別16中找到setlatesteventinfo。我試圖使用v4支持庫。在我的實現中,我爲循環的每次迭代構建一個新的通知。但我還沒有想出一種方法來首次保持聲音警報,而不是休息。有沒有人成功地正確更新通知?

+0

是的,只需在您的活動中調用bindService即可。 – 2013-02-20 16:30:21

+0

服務中會再次調用綁定嗎? – 2013-02-20 18:15:49

+0

我想是的,那是你可以返回服務消息處理程序的地方。 – 2013-02-20 18:18:51

回答

6

我想知道是否有可能綁定到正在運行的服務S不停止

這當然是可能的。正如Hoan指出的那樣,您需要從您的活動中調用bindService()。 This article有關於如何做的一些示例代碼。

至於你的問題的其餘部分,它似乎可以分解成幾個新的問題。一次領悟和回答真的很難。

1

的Android文檔上Bound Services說:

第三個參數是指示綁定選項的標誌。它通常應該是BIND_AUTO_CREATE才能創建服務,如果它尚未活動。

儘管如此,仍然必須確認服務S的onCreate()不再被調用。

相關問題