我對Android服務類仍然有點新鮮。我知道你需要用startService(intent)從你的應用程序啓動服務,但是我的問題是我的服務裏面有方法。我需要以意圖啓動服務,然後在我的Activity中創建該類的對象,以便可以調用該服務的方法。問題是,當我這樣做時,我創建了一個服務實例,當我在一個intent和另一個服務實例中啓動服務時,在我的活動中創建了一個類的對象。這意味着當我創建服務的對象時,從startService(intent)傳遞給服務的任何數據都不存在。任何解決這個問題的方法還是我完全濫用服務類?我可以給一些代碼,但其基本上是這樣的:Android服務多個實例
//Create Object of ControlPanel service class.
ControlPanel cPanel = new ControlPanel();
//Create intent for starting ControlPanel service class
Intent controlPanel = new Intent(this, cPanel.getClass());
//Start Service
startService(controlPanel);
我會看看bindService()。我之前簡要地閱讀了它,但從來沒有用過它。我不明白我能找到什麼。你可以推薦任何好的教程頁面? – 2013-04-10 16:56:06
@TravisElliott:「你可以推薦任何好的教程頁面?」 - 我確信有一些,但我不知道我的頭頂有什麼。我最簡單的示例是https://github.com/commonsguy/cw-omnibus/tree/master/AdvServices/Binding,但它來自我的書的高級篇章,因此假設了其他內容(如片段)的使用經驗。 – CommonsWare 2013-04-10 17:01:03
這樣做的關鍵是我需要服務在我調用它的方法時執行工作,然後通過信使發送信息到主要活動。該服務有一個可運行的線程,在後臺線程上執行工作(通過tcp套接字發送數據)。任何想法在更好的方式來做到這一點。我真的不想使用Intent服務,因爲另一個線程也需要保持運行以接收數據。 – 2013-04-10 17:21:07