注:Service的生命周期中onStart()方法被淘汰,用onStartCommand()代替。onCreate():在服務被創建時執行,一個服務類只能調用一次。onStartCommand():在服務開始時被調用執行,可以被調用多次。onDestroy():銷毀服務,一個服務類中也只能調用一次。服務和進程,每個APP的啟動必然會產生一個進程。一個進程中可能會包含多個服務,也可以不啟動任何服務。當然如果一個進程被殺死了,那么這個進程中所包含的所有服務都會被殺死。服務有兩種啟動方式:1.第一種,startService的啟動方式,此時與應用無關,即使app關閉也不會停止,而是在后臺運行。關閉這種服務只能調用stopService方法。同一個服務沒有被stop時,只會走一遍onCreate(),其余每次點擊啟動同一個服務時,都只走onStartCommand()方法。2.第二種,bindService的啟動方式,其特性是隨著Activity的生命周期變化而改變。如果啟動后沒有結束時,則不會再次啟動(不再執行任何生命周期,即再次點擊無效);如果啟動后,手動結束,則可以再次開啟;如果啟動后,Activity(綁定的)退掉時,則服務結束。新聞熱點
疑難解答