从我对应用程序生命周期(包括服务)的理解来看,应该是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仍然运行。
这是意料之中的吗?为什么会这样?
它是服务生命周期的一部分,因为它需要交付启动/创建服务的意图。虽然我不建议使用onStart()
,但该方法已被弃用并被onStartCommand()
取代。