根据
this博客文章和
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,"onStart() called"); handleStart(intent); super.onStart(intent,startId); }