為了啟動乙個
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...