2013-05-11 43 views
-1

我已經測試了這種方法:當一個android服務真的開始了嗎?

private boolean isMyServiceRunning() { 
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
     if (MyService.class.getName().equals(service.service.getClassName())) { 
      return true; 
     } 
    } 
    return false; 
} 

當我調用bindService()在我的活動,而startService(),我的服務正在運行(與prevoious方法檢查的話),但我想,只有startService( )可以開始一項服務!

所以我只是想知道當一個服務開始真正:與startService()或binService()

只是一個評論,只有當我打電話unBindService(),以前的方法返回false。

謝謝。

回答

2

getRunningServices()返回正在運行的服務。如果這些服務已由startService()啓動或者​​通過bindService()綁定,那麼這些服務將運行。

+0

所以當我只是調用binService()時,爲什麼isMyServiceRunning()方法返回true?這是我的問題。 – Jarvis 2013-05-11 15:38:33

+0

@SamySeniorAndroidDeveloper:因爲你的服務正在運行。請重新閱讀我的答案。 – CommonsWare 2013-05-11 15:39:52

+0

好的謝謝,但服務啓動時,onStartCommand()方法(從服務類)被調用,但是當我只使用bindService(),onStartCommand()方法不會被調用。 – Jarvis 2013-05-11 15:50:21