Service以及描述下它的生命週期: Service是執行在後臺的android元件,沒有使用者介面,不能與使用者互動,可以執行在自己的程序,也可以執行在其他應用程式的上下文裡。 Service隨著啟動形式的不同,其生命週期稍有差別。當用Context.startService()來啟動時,Service的生命週期依次為:oncreate——>onStartCommand——>onDestroy 當用Context.bindService()啟動時:onStart——>onBind——>onUnbind——>onDestroy。 Service啟動方式有兩種;一是Context.startService和Context.bindService。 區別是透過startService啟動時Service元件和應用程式沒多大的聯絡;當用訪問者啟動之後,如果訪問者不主動關閉,Service就不會關閉,Service元件之間因為沒什麼關聯,所以Service也不能和應用程式進行資料互動。而透過bindService進行繫結時,應用程式可以透過ServiceConnection進行資料互動。 在實現Service時重寫的onBind方法中,其返回的物件會傳給ServiceConnection物件的onServiceConnected(ComponentName name, IBinder service)中的service引數;也就是說獲取了serivce這個引數就得到了Serivce元件返回的值。Context.bindService(Intent intent,ServiceConnection conn,int flag)其中只要與Service連線成功conn就會呼叫其onServiceConnected方法,停用Service使用Context.stopService。
Service以及描述下它的生命週期: Service是執行在後臺的android元件,沒有使用者介面,不能與使用者互動,可以執行在自己的程序,也可以執行在其他應用程式的上下文裡。 Service隨著啟動形式的不同,其生命週期稍有差別。當用Context.startService()來啟動時,Service的生命週期依次為:oncreate——>onStartCommand——>onDestroy 當用Context.bindService()啟動時:onStart——>onBind——>onUnbind——>onDestroy。 Service啟動方式有兩種;一是Context.startService和Context.bindService。 區別是透過startService啟動時Service元件和應用程式沒多大的聯絡;當用訪問者啟動之後,如果訪問者不主動關閉,Service就不會關閉,Service元件之間因為沒什麼關聯,所以Service也不能和應用程式進行資料互動。而透過bindService進行繫結時,應用程式可以透過ServiceConnection進行資料互動。 在實現Service時重寫的onBind方法中,其返回的物件會傳給ServiceConnection物件的onServiceConnected(ComponentName name, IBinder service)中的service引數;也就是說獲取了serivce這個引數就得到了Serivce元件返回的值。Context.bindService(Intent intent,ServiceConnection conn,int flag)其中只要與Service連線成功conn就會呼叫其onServiceConnected方法,停用Service使用Context.stopService。