根据这篇博客文章以及onStartCommand()如果你有服务的文档,你应该实现onStart()和onStartCommand(),而在2.0及更高版本中只调用onStartCommand().似乎情况并非如此,并且在我的服务中正在调用.这是一个问题,因为它试图完成两次工作,所以我不得不在onStart()中添加一个检查,如果操作系统版本<2.0则不做任何事情.这似乎是一个黑客和一个错误.其他人经历过这个或者我可能有错吗?我从样本中剪切并粘贴了代码.
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Util.log(mCtx, "AlerterService", "onStartCommand() called");
handleStart(intent);
return super.onStartCommand(intent, flags, startId);
}
public void onStart(Intent intent, int startId) {
Util.log(mCtx, "AlerterService", "onStart() called");
handleStart(intent);
super.onStart(intent, startId);
}
Run Code Online (Sandbox Code Playgroud)