android服务何时真正启动?
我已经测试过这个方法:android服务何时真正启动?,android,service,Android,Service,我已经测试过这个方法: private boolean isMyServiceRunning() { ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if (MyServic
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;
}
当我在没有startService()的情况下在活动中调用bindService()时,我的服务正在运行(使用前面的方法检查),但我认为只有startService()可以启动服务
所以我只想知道一个服务何时真正开始:使用startService()或binService()
只是一个注释,只有在调用unBindService()时,前面的方法才会返回false
谢谢。
getRunningServices()
返回正在运行的服务。如果服务是由startService()
启动的,或者是通过bindService()
绑定到的,那么这些服务将运行。所以,当我调用binService()时,为什么isMyServiceRunning()方法返回true???这是我的问题。@SamySeniorAndroidDeveloper:因为您的服务正在运行。请重新阅读我的答案。好的,谢谢,但当调用onStartCommand()方法(来自服务类)时,服务确实会启动,但当我仅使用bindService()时,不会调用onStartCommand()方法。@SamySeniorAndroidDeveloper:正确。在英语中,“run”与“start”是不同的词getRunningServices()
返回正在运行的服务,其中包括已启动的服务和绑定的服务。@CCommonsWare在运行之前是,您需要启动;)感谢您的澄清!