我正在处理代码,以便在android完成启动时调用服务。
该服务在名为myService的manifest.xml中定义。
在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"。我通读开发者网站,但无法弄清楚原因。
非常感谢您的评论和建议。
答案 0 :(得分:2)
onStartCommand
takes an Intent and two integer parameters。
尝试用以下方法替换您的方法:
@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
对其进行注释。如果你错过了一个参数,得到了错误的名字,那将导致编译错误等等。