android中服務是運行在後臺的東西,級別與activity差不多。既然說service是運行在後臺的服務,那麼它就是不可見的,沒有界面的東西。你可以啓動一個服務Service來播放音樂,或者記錄你地理信息位置的改變,或者啓動一個服務來運行並一直監聽某種動作。
重點在於理解Service的生命週期,啓動,綁定,處理連接(正常連接or異常連接,重載ServiceConnection的OnServiceConnected和OnServiceDisconnected),停止。
對於不同的方式(startService和bindService)啓動Service有不同的生命週期。
context.startService() ->onCreate()- >onStart()->Service running--調用context.stopService() ->onDestroy()
context.bindService()->onCreate()->onBind()->Service running--調用>onUnbind() -> onDestroy()
直接使用Service有兩個不足:
不專門啓動一條單獨線程,與應用程序在同一線程中;
不是一個新線程,不應該處理耗時的操作。
由此引出了IntentService,繼承自Service,
會創建單獨的worker線程處理intent請求;
會創建單獨的worker線程處理OnHandleIntent()方法實現代碼