我正在尝试从启动器活动的onCreate()启动服务。
我创建了一个intent对象并调用了startService()。这会在新线程中调用服务吗?我可以看到只有在活动的onCreate()退出后才调用onStartCommand服务。
这是真的吗?如果是,如何并行启动服务,即oncreate可以继续与服务的onStartCommand并行退出。
提前致谢。
答案 0 :(得分:1)
这会在新线程中调用服务吗?
在Java中,对象不在线程上运行。方法在线程上运行。
我只能在活动的onCreate()退出后才能看到服务的onStartCommand。
正确。 startService()
只是将请求排队以启动服务。在将主应用程序线程的控制权返回给框架之前,Android无法做到这一点。只要onCreate()
正在运行,您就会占用主应用程序线程。您需要确保每个回调(例如onCreate()
)非常非常快,理想情况下持续时间不超过1毫秒。
如果是,如何并行启动服务,即oncreate可以继续与服务的onStartCommand并行退出。
这是不可能的,抱歉。