2013-05-11 23 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