activity 啟動service兩種方式:
startservice
bindservice
startservice(intent):
1.定義乙個類繼承service
2.在manifest.xml
檔案中配置該service
3.使用context的startservice(intent)
方法啟動該service
4.不再使用時,呼叫stopservice(intent)
方法停止該服務
使用這種start方式啟動的service的生命週期如下:
oncreate()
--->onstartcommand()
(onstart()
方法已過時) --->ondestory()
說明:如果服務已經開啟,不會重複的執行oncreate()
, 而是會呼叫onstart()
和onstartcommand()
。
服務停止的時候呼叫ondestory()
。服務只會被停止一次。
特點:一旦服務開啟跟呼叫者(開啟者)就沒有任何關係了。
開啟者退出了,開啟者掛了,服務還在後台長期的執行。
開啟者不能呼叫服務裡面的方法。
bindservice(intent, serviceconnection, int):
1.定義乙個類繼承service
2.在manifest.xml
檔案中配置該service
3.使用contex
t的bindservice(intent, serviceconnection, int)
方法啟動該service
4.不再使用時,呼叫unbindservice(serviceconnection)
方法停止該服務
使用這種start方式啟動的service的生命週期如下:
oncreate()
--->onbind()
--->onunbind()
--->ondestory()
注意:繫結服務不會呼叫onstart()
或者onstartcommand()
方法
特點:bind的方式開啟服務,繫結服務,呼叫者掛了,服務也會跟著掛掉。
繫結者可以呼叫服務裡面的方法。
Service解析(一)啟動和繫結Service
service是四大元件之一,在後台執行,多用來在後台執行耗時操作,servie是執行在主線程中都 public class myservice extends service override public ibinder onbind intent intent override public ...
activity 啟動模式
在android的中activity 有4種啟動方式 standard singletop singletask singleinstance 下面就分輕重點講講這些啟動方式。1 standard啟動方式 這種方式也是系統預設的。說的簡單點,我們在使用startactivity 方法的時候,系統就會...
activity啟動模式
1 對於使用standard 模式的活動,系統不會在乎這個活動是否已經在返回棧中存在,每次啟動都會建立該活動的乙個新的例項。例如a啟動a,a再接著啟動a,a繼續啟動a,然後再分別出棧,如圖所示 2 當活動的啟動模式指定為 singletop,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直...