2012-11-20 135 views
0

我想啓動服務使用活動。具體來說,它是IntentService。但我有兩個問題:啓動服務使用活動

當開始我的代碼

private void switchService(boolean isEnable, String serviceName){ 
     Intent intent = new Intent(); 
     intent.setClassName(TestPhoneServiceActivity.this, serviceName); 
     if(isEnable){ 
      startService(intent); 
     } 
     else{ 
      if(isServiceRunning(serviceName)){ 
       stopService(intent); 
       while(isServiceRunning(serviceName)){ 

       } 
       Toast.makeText(this, "Service stopped Successfully!", Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

DDMS有錯誤:Unable to start service Intent { cmp=com.xx.android/.AndroidPhoneService }: not found

但道路是正確的。那麼問題是什麼呢?我也想調用一個系統服務。我應該把它寫入配置文件嗎?

然後我啓動IntentService使用intent.setClass。

ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE) 

我找不到這個服務對象。 IntentService是否自動完成並銷燬?IntentService的生命週期與其他Service不同?

+1

你是否在清單文件中添加了你的服務? –

+0

不停止intentservice,它在完成時自行停止 – njzk2

+0

發佈您描述服務的清單部分 – njzk2

回答

0

你應該通過在類的服務,而不是類的服務的名稱,像這樣

Intent intent = new Intent(); 
    intent.setClassName(TestPhoneServiceActivity.this, MyIntentService.class); 
    if(isEnable){ 
     startService(intent); 
    } 

如果你開始的目的相同服務的多個意向服務停止自己的工作完成後,它會排在後面並按順序執行,所以else塊在你的情況下是多餘的。

並確保您在清單中聲明瞭服務。