Activity 啟動Service兩種方式與區別

2021-08-30 14:05:15 字數 1473 閱讀 4317

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.使用context的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,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直...