serviceandroid生命周期
A. Android-Android中service與application的生命周期有關系嗎
有關系的,在Android中進程按優先順序可以分為五類,優先順序從高到低排列:
1.前台進程 該進程包含正在與用戶進行交互的界面組件,比如一個Activity。
2.可視進程 該進程中的組件雖然沒有和用戶交互,但是仍然可以被看到。
3.服務進程 該進程包含在執行後台操作的服務組件,比如播放音樂的Service。
4.後台進程 該進程包含的組件沒有與用戶交互,用戶也看不到 Service。
5.空進程 沒有任何界面組件、服務組件,或觸發器組件。
Android系統是進程託管的,也就是說進程都是由系統來管理,系統會按照特定的算來來回收這些進程。在回收中秉承幾個原則:
1. 盡量延長進程的生命周期,不到必須的情況下不會回收,因為系統回收進程會影響用戶體驗
2. 按優先順序從低到高進行回收
3. 同等優先順序的進程越近使用越晚回收。
通過上面這些解釋,進程過一段時間後是會被回收的,但要遵循上面的這些原則,service和application的生命周期有關,只要進程被回收,那麼它所佔用的所有資源將被回收。
B. android service有什麼用
Service是Android系統中的四大組件之一,它是一種長生命周期的,沒有可視化界面,運行於後台的一種服務程序。如果service是被開啟的,那麼它的活動生命周期和整個生命周期一同結束。如果service是被綁定的,它們它的活動生命周期是在onUnbind()方法返回後結束。
service積極活動的生命時間(active lifetime)是從onStartCommand()或onBind()被調用開始,它們各自處理由startService()或bindService()方法傳過來的Intent對象。
(2)serviceandroid生命周期擴展閱讀
service整體的生命時間是從onCreate()被調用開始,到onDestroy()方法返回為止。和activity一樣,service在onCreate()中進行它的初始化工作,在onDestroy()中釋放殘留的資源。
比如,一個音樂播放service可以在onCreate()中創建播放音樂的線程,在onDestory()中停止這個線程。onCreate()和onDestroy()會被所有的service調用,不論service是通過startService()還是bindService()建立。