我正在尋找一種啓動一個沒有這個類的Android服務的方法。 我發現了很多例子:開始一個沒有.class的Android服務
startService(new Intent(this,TheService.class));
我不想把服務類放進去,並且仍然有服務運行,直到我手動停止服務。
我不需要有服務的接口,因爲它只應該打開一些沒有任何參數的套接字。
服務運行時間不應該取決於應用程序的運行時間: 需要服務的第一個應啓動它,並且應該運行,直到它被手動停止。
所以我不能使用BroadcastReceiver,因爲他們活得太短。 綁定到服務將導致解除停止服務(我不想)。
有沒有辦法使用啓動服務沒有.class的服務? 替代方案: 有沒有辦法綁定到服務,而不會將生存期與啓動的應用程序鏈接?
只是因爲它可能導致一個錯誤的設計決策:_I不能使用廣播接收器,因爲他們活得太短,聽起來很像你還不知道在BroadcastReveivers和Services的生命週期中,推理仍然是錯誤的,因爲一個_can_可以通過BroadcastReveiver啓動一個長時間運行的服務。另外,對服務的_binding_當然與Activity對象的生命週期有關,但_binding_時間跨度不一定與服務的_running_時間段相匹配。所以不要因誤解而做出設計決定。 – 2013-02-18 07:27:55
如果你的'服務'想要控制自己的生命週期,你仍然可以使用bind/unbind來做到這一點。當一個客戶端綁定時,'Service'可以自行啓動(只需在'onBind()')中調用'startService()',這樣當客戶端解除綁定'Service'時不會自動停止。只要服務準備關閉,「服務」就可以停止。 – 2013-02-18 12:25:54