Service 我可以从应用程序#onCreate()启动服务吗?

Service 我可以从应用程序#onCreate()启动服务吗?,service,oncreate,android,Service,Oncreate,Android,我想在应用程序从任何组件初始化时启动服务 public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); startService(new Intent(getApplicationContext(), MyService.class)); } } 该服务是否在onCreate()状态下可用?sup

我想在应用程序从任何组件初始化时启动服务

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        startService(new Intent(getApplicationContext(), MyService.class)); 
    }
}
该服务是否在
onCreate()
状态下可用?
super.onCreate()
是否会初始化在AndroidManifest.xml中注册的应用程序的所有组件

我可以在galaxy s中运行此代码,但我无法确保它将在所有设备和平台上运行,我找不到任何关于Android应用程序初始化的文档。

简言之,是的,但文档还表示,如果返回null,则服务不可用

如果服务正在启动或已在运行,则 返回已启动的实际服务的ComponentName;其他的 如果服务不存在,则返回null


此API并不意味着在不同的设备之间有所不同,因此您可以确信在模拟器和现有设备上体验到了什么。需要注意的是,需要“大量”资源的服务可能会以不同的方式运行,例如cpu时间或内存等。

是的,您可以用
onCreate()
的方式启动服务。但是,不能保证该服务将成功启动-只要该服务存在于设备上并且能够运行,它就会成功启动
super.onCreate()
不执行从应用程序中启动服务所需的任何准备工作。“onCreate()状态下的服务是否可用”是什么意思?

该服务来自我的应用程序,因此它肯定存在。“服务是否在onCreate()状态下可用”,我的意思是服务是否准备好在应用程序#onCreate()(而不是活动#onCreate())中启动。服务将准备好启动。onCreate不需要在服务启动之前运行(即onCreate不执行从应用程序加载服务所需的类加载)。在这种情况下,我们如何在应用程序中重新获取服务对象。。。从哪里调用onBind?