Android服务onstart()只有在调用活动的onCreate()结束后才会被调用

时间:2017-04-10 12:04:58

标签: java android

我正在尝试从启动器活动的onCreate()启动服务。

我创建了一个intent对象并调用了startService()。这会在新线程中调用服务吗?我可以看到只有在活动的onCreate()退出后才调用onStartCommand服务。

这是真的吗?如果是,如何并行启动服务,即oncreate可以继续与服务的onStartCommand并行退出。

提前致谢。

1 个答案:

答案 0 :(得分:1)

  

这会在新线程中调用服务吗?

在Java中,对象不在线程上运行。方法在线程上运行。

  

我只能在活动的onCreate()退出后才能看到服务的onStartCommand。

正确。 startService()只是将请求排队以启动服务。在将主应用程序线程的控制权返回给框架之前,Android无法做到这一点。只要onCreate()正在运行,您就会占用主应用程序线程。您需要确保每个回调(例如onCreate()非常非常快,理想情况下持续时间不超过1毫秒。

  

如果是,如何并行启动服务,即oncreate可以继续与服务的onStartCommand并行退出。

这是不可能的,抱歉。