Context的startService用于启动服务,代码如下:
//frameworks/base/core/java/android/content/Context.java
public abstract class Context {
@Nullable
public abstract ComponentName startService(Intent service);
}
Context是抽象类,由其子类ContextImpl实现:
//frameworks/base/core/java/android/content/ContextImpl.java
class ContextImpl extends Context {
@Override
public ComponentName startService(Intent service) {
warnIfCallingFromSystemProcess();
return startServiceCommon(service, false, mUser);
}
}
调用startServiceCommon方法:
//frameworks/base/core/java/android/content/ContextImpl.java
class ContextImpl extends Context {
final @NonNull ActivityThread mMainThread;
private ComponentName startServiceCommon(Intent service, boolean requireForeground,
UserHandle user) {
try {
validateServiceIntent(servic