導航:首頁 > 操作系統 > android啟動service的方法

android啟動service的方法

發布時間:2025-01-05 07:00:45

1. android中怎麼啟動關閉Service及功能解釋

1、 Service不是分離開的進程,除非其他特殊情況,它不會運行在自己的進程,而是作為啟動運行它的進程的一部分。
2、 Service不是線程,這意味著它將在主線程里勞作。
啟動service有兩種方法:
1、 Context.startService()
調用者與服務之間沒有關聯,即使調用者退出,服務仍可運行
2、 Context.bindService()
調用者與服務綁定在一起,調用者一旦退出,服務也就終止
Service的生命周期
如果使用startService()啟動service,系統將通過傳入的Intent在底層搜索相關符合Intent裡面信息的service。如果服務沒有啟動則先運行onCreate,然後運行onStartCommand (可在裡面處理啟動時傳過來的Intent和其他參數),直到明顯調用stopService或者stopSelf才將停止Service。無論運行startService多少次,只要調用一次stopService或者stopSelf,Service都會停止。使用stopSelf(int)方法可以保證在處理好intent後再停止。
控制service運行的主要方式有兩種,主要是根據onStartCommand方法返回的數值。方法:
1、START_STICKY
2、START_NOT_STICKY or START_REDELIVER_INTENT
這里主要解釋這三個變數的意義:
1、 START_STICKY
在運行onStartCommand後service進程被kill後,那將保留在開始狀態,但是不保留那些傳入的intent。不久後service就會再次嘗試重新創建,因為保留在開始狀態,在創建 service後將保證調用onstartCommand。如果沒有傳遞任何開始命令給service,那將獲取到null的intent
2、 START_NOT_STICKY
在運行onStartCommand後service進程被kill後,並且沒有新的intent傳遞給它。Service將移出開始狀態,並且直到新的明顯的方法(startService)調用才重新創建。因為如果沒有傳遞任何未決定的intent那麼service是不會啟動,也就是期間onstartCommand不會接收到任何null的intent。

2. Android 開機自啟動service實踐

Android 設備啟動的時候,會發送android.intent.action.BOOT_COMPLETED的廣播,監聽這個廣播來實現開機自啟動。

1) 創建需要的service和 BroadcastReceiver
2) 在AndroidManifest.xml 注冊service 和BroadcastReceiver

3)申明許可權
```
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

}

3. android 啟動service的兩種方式有什麼不同

Service的生命周期Service的生命周期方法比Activity少一
些,只有onCreate,onStart,onDestroy
我們有兩種方式啟動一個Service,他們對Service生命周期
的影響是不一樣的。
1;通過startService:
Service會經歷onCreate->onStart,
stopService的時候直接onDestroy如果是調用者(TestServiceHolder)自己直接退出而沒有調用stopService的話,Service會一直在後台運行。下次TestServiceHolder再起來可以stopService。
2:通過bindService:
Service只會運行onCreate,這個時候TestServiceHolder和TestService綁定在一起
TestServiceHolder退出了,Srevice就會調用onUnbind->onDestroyed所謂綁定在一起就共存亡了。
那有同學問了,要是這幾個方法交織在一起的話,會出現什麼情況呢?
一個原則是Service的onCreate的方法只會被調用一次,就是你無論多少次的
startService又bindService,Service只被創建一次。如果先是bind了,那麼start的時候就直接運行Service的onStart方法,如果先是start,那麼bind的時候就直接運行onBind方法。如果你先bind上了,就
stop不掉了,對啊,就是stopService不好使了,只能先UnbindService,再StopService,
所以是先start還是先bind行為是有區別的。

閱讀全文

與android啟動service的方法相關的資料

熱點內容
androidlistview按下顏色 瀏覽:194
單片機實驗報告蜂鳴器 瀏覽:10
農業量地用什麼app 瀏覽:11
python構造時間 瀏覽:843
頁面加密不能復制 瀏覽:680
什麼app可以看美劇無刪美劇 瀏覽:845
mom解壓包下載 瀏覽:270
什麼手機app可以學習數學 瀏覽:496
pdf文檔製作 瀏覽:781
修改文件夾顯示電影圖標 瀏覽:133
王者榮耀視頻app叫什麼 瀏覽:900
php判斷ip段 瀏覽:978
gmail伺服器怎麼收到郵件 瀏覽:297
sha弱加密演算法 瀏覽:666
預編譯error指令 瀏覽:304
小米控制電視的app叫什麼 瀏覽:351
python中break的用法 瀏覽:508
安居家園app怎麼設備綁定 瀏覽:91
程序員招聘數量城市 瀏覽:801
程序員反擊代碼 瀏覽:255