2

根据我对应用程序生命周期(包括服务)的理解,它应该继续 onCreate > onStart > onResume。

基于这种理解,如果您在 onCreate 中使用 this.stopSelf() 关闭循环,则永远不应触发 onStart。

    @Override
public void onCreate()
{
    super.onCreate();
    Log.i(TAG, "Service starting");
    this.stopSelf();
}
@Override
public void onStart(Intent intent, int startId) 
{
    super.onStart(intent, startId);
    Log.i(TAG, "onStart Service");
}

我希望 onStart 日志不会触发。但是,LogCat 清楚地表明,尽管服务在 onCreate 中终止,但 onStart 仍然运行。

这是可以预料的吗?为什么是这样?

4

1 回答 1

3

它是服务生命周期的一部分,因为它需要传递启动/创建服务的意图。我不建议使用onStart(),但该方法已被弃用并由onStartCommand().

于 2011-10-17T20:52:16.080 回答