1. 程式人生 > >Service兩種啟動方式的生命週期

Service兩種啟動方式的生命週期



注:Service的生命週期中onStart()方法被淘汰,用onStartCommand()代替。

onCreate():在服務被建立時執行,一個服務類只能呼叫一次。

onStartCommand():在服務開始時被呼叫執行,可以被呼叫多次。

onDestroy():銷燬服務,一個服務類中也只能呼叫一次。

服務和程序,每個APP的啟動必然會產生一個程序。 一個程序中可能會包含多個服務,也可以不啟動任何服務。當然如果一個程序被殺死了,那麼這個程序中所包含的所有服務都會被殺死。 服務有兩種啟動方式: 1.第一種,startService的啟動方式,此時與應用無關,即使app關閉也不會停止,而是在後臺執行。關閉這種服務只能呼叫stopService方法。
同一個服務沒有被stop時,只會走一遍onCreate(),其餘每次點選啟動同一個服務時,都只走onStartCommand()方法。 2.第二種,bindService的啟動方式,其特性是隨著Activity的生命週期變化而改變。 如果啟動後沒有結束時,則不會再次啟動(不再執行任何生命週期,即再次點選無效); 如果啟動後,手動結束,則可以再次開啟; 如果啟動後,Activity(繫結的)退掉時,則服務結束。