Merge "Fix a crash when starting a service in the isolated split" into sc-dev
This commit is contained in:
@@ -4416,11 +4416,20 @@ public final class ActivityThread extends ClientTransactionHandler
|
|||||||
if (localLOGV) Slog.v(TAG, "Creating service " + data.info.name);
|
if (localLOGV) Slog.v(TAG, "Creating service " + data.info.name);
|
||||||
|
|
||||||
Application app = packageInfo.makeApplication(false, mInstrumentation);
|
Application app = packageInfo.makeApplication(false, mInstrumentation);
|
||||||
java.lang.ClassLoader cl = packageInfo.getClassLoader();
|
|
||||||
|
final java.lang.ClassLoader cl;
|
||||||
|
if (data.info.splitName != null) {
|
||||||
|
cl = packageInfo.getSplitClassLoader(data.info.splitName);
|
||||||
|
} else {
|
||||||
|
cl = packageInfo.getClassLoader();
|
||||||
|
}
|
||||||
service = packageInfo.getAppFactory()
|
service = packageInfo.getAppFactory()
|
||||||
.instantiateService(cl, data.info.name, data.intent);
|
.instantiateService(cl, data.info.name, data.intent);
|
||||||
final ContextImpl context = ContextImpl.getImpl(service
|
ContextImpl context = ContextImpl.getImpl(service
|
||||||
.createServiceBaseContext(this, packageInfo));
|
.createServiceBaseContext(this, packageInfo));
|
||||||
|
if (data.info.splitName != null) {
|
||||||
|
context = (ContextImpl) context.createContextForSplit(data.info.splitName);
|
||||||
|
}
|
||||||
// Service resources must be initialized with the same loaders as the application
|
// Service resources must be initialized with the same loaders as the application
|
||||||
// context.
|
// context.
|
||||||
context.getResources().addLoaders(
|
context.getResources().addLoaders(
|
||||||
|
|||||||
Reference in New Issue
Block a user