Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android服务何时真正启动?_Android_Service - Fatal编程技术网

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在运行之前是,您需要启动;)感谢您的澄清!