2014-01-27 209 views
0

我有一個包含活動和服務的Android應用程序。我想在啓動時啓動服務。我會使用活動來給用戶提供一個UI來配置某些參數並啓動服務。我希望服務在啓動時啓動。我知道我可以做到這一點this的方式。重新啓動服務

現在我有兩個與此相關的問題:

  1. 服務將始終在引導時啓動。但是如果我想阻止它呢。我可以在活動中通過簡單地調用stopService()嗎?(需要假設用戶想要更改正在運行的服務的參數。)
  2. 如果我安裝應用程序的較新版本,服務類,它會自動停止服務,並用新的服務替換它?

回答

0

在服務中添加BroadcastReceiver,就像你聽BOOT_COMPLETED廣播,那麼你就可以在你的視覺活動將定製的廣播,使服務站。
通過這種方式,您也可以重新啓動服務,完成並開始新的服務。

+0

那麼stopService()不會停止服務?通過安裝新版本的應用程序,它不應該自動重新啓動並更換服務嗎?如果不是,那麼在android中不是一個問題? – rahulserver

1

stopService將停止您的服務,假設您調用了正確的服務(如果您只有1個,那麼它將工作)。而這正是你詢問的理由所必需的,如果參數改變了,你需要能夠開始/停止服務。

?新版本更新將自動停止服務。 JB之後,服務不會自動重新啓動,直到用戶打開您的應用程序,即使重新啓動。這是出於安全原因。

+0

正如我想的那樣。嘗試後會標記爲答案。謝謝! – rahulserver