Service的啟動 控制和互動

2021-09-05 21:29:17 字數 1339 閱讀 5231

為了啟動乙個

service

,呼叫startservice

;你可以使用動作來隱式啟動乙個已經註冊的

service

,或者顯式的指定

service

啟動。

如果你的程式沒有

service

所需的許可權,那麼,這個呼叫會丟擲乙個

securityexception

。下面的片段顯示了兩種啟動

service

的技巧:

// implicitly start a service

startservice(new intent(myservice.my_action));

// explicitly start a service

startservice(new intent(this, myservice.class));

為了使用這個例子,你需要在

myservice

類中包含乙個

my_action

屬性,並且使用乙個

intent filter

來註冊它,作為

my_action

的乙個provider。

為了停止乙個

service

,使用stopservice

,傳入乙個要停止的

service

的intent

。下面的**片段首先啟動乙個

service

,然後使用

startservice

返回的元件名來停止乙個

service:

componentname service = startservice(new intent(this, baseballwatch.class));

// stop a service using the service name.

stopservice(new intent(this, service.getclass()));

// stop a service explicitly.

try

catch (classnotfoundexception e){}

如果在已經執行的

service

上再次呼叫

startservice

的話,service

的onstart

方法會再次執行。

startservice

的呼叫不需要配對,所以,一次

stopservice

的呼叫可以停止呼叫很多次

startservice

的service

service的隱式啟動和顯示啟動

private void validateserviceintent intent service else 既然,原始碼裡是這樣寫的,那麼這裡有兩種解決方法 1 設定action和packagename intent mintent new intent mintent.setaction 你定義...

Service的啟動方式

service的啟動方式 兩種啟動模式,一種是非繫結啟動模式,另一種是繫結啟動模式。一 startservice方式啟動 1 intent intent new intent this,firstservice.class 2 開啟服務 3 startservice intent 二 繫結啟動模式 ...

Service的啟動 繫結過程

摘自 android高階解密 service啟動過程 第一步 contextimpl到activitymanagerservice的呼叫過程 第二步 activitythread啟動service 1 processrecord主要用來描述執行的應用程式程序的資訊 2 loadedapk是乙個apk...