Android 调用服务时,会运行onCreate,但不会运行onStart命令()

Android 调用服务时,会运行onCreate,但不会运行onStart命令(),android,service,Android,Service,我正在编写代码,以便在android启动完成后调用服务 该服务在manifest.xml中定义,称为myService 在myService类中,代码覆盖两个方法: @Override public void onCreate(){ myInit(); Log.d(TAG, "onCreate: "); } public int onStartCommand(){ Log.d(TAG, "onStartCommand first line"); st

我正在编写代码,以便在android启动完成后调用服务

该服务在manifest.xml中定义,称为myService

在myService类中,代码覆盖两个方法:

@Override
public void onCreate(){

    myInit();

    Log.d(TAG, "onCreate: ");

}


public int onStartCommand(){

    Log.d(TAG, "onStartCommand first line");

    startScheduler();

    Log.d(TAG, "onStartCommand: ");

    //This service is running in the background all the time. Therefore, return sticky.
    return START_STICKY;
}
运行时,logcat可以看到“onCreate”,但不能看到“onStartCommand”。我浏览了开发者网站,但不知道为什么


欢迎提出意见和建议

onstart命令

尝试将您的方法替换为:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d(TAG, "onStartCommand first line");

    startScheduler();

    Log.d(TAG, "onStartCommand: ");

    //This service is running in the background all the time. Therefore, return sticky.
    return START_STICKY;
}


一般来说,如果您认为您正在重写或实现一个方法,请始终使用
@Override
对其进行注释。如果缺少参数、名称错误等,将导致编译器出错。

onStartCommand

尝试将您的方法替换为:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d(TAG, "onStartCommand first line");

    startScheduler();

    Log.d(TAG, "onStartCommand: ");

    //This service is running in the background all the time. Therefore, return sticky.
    return START_STICKY;
}


一般来说,如果您认为您正在重写或实现一个方法,请始终使用
@Override
对其进行注释。如果缺少参数、名称错误等,这将导致编译器错误。

super.onCreate()
添加到
onCreate()
方法中。您好,CommonWare,super.onCreate()在我自己的onCreate()中是强制性的吗?它对于活动是强制性的。我不知道这是否是强制性的服务,但我建议打电话给它,除非你有明确的理由不这样做。谢谢。加上它。应用程序运行良好。将
super.onCreate()
添加到您的
onCreate()
方法中。您好,CommonWare,super.onCreate()在我自己的onCreate()中是强制性的吗?对于活动是强制性的。我不知道这是否是强制性的服务,但我建议打电话给它,除非你有明确的理由不这样做。谢谢。加上它。应用程序运行良好。