下面列出了android.app.Instrumentation#newApplication ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
protected Application makeApplication(boolean forceDefaultAppClass, Instrumentation instrumentation) throws Exception {
if (null != this.mApplication) {
return this.mApplication;
}
String appClass = this.mPackage.applicationInfo.className;
if (forceDefaultAppClass || null == appClass) {
appClass = "android.app.Application";
}
this.mApplication = instrumentation.newApplication(this.mClassLoader, appClass, this.getPluginContext());
// inject activityLifecycleCallbacks of the host application
mApplication.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacksProxy());
instrumentation.callApplicationOnCreate(this.mApplication);
return this.mApplication;
}
public Application createApplication(Class class1)
{
assertNull("Application already created", application);
Application application1;
try
{
application1 = Instrumentation.newApplication(class1, getContext());
}
catch (Exception exception)
{
throw new RuntimeException((new StringBuilder()).append("Could not create application ").append(class1).toString(), exception);
}
application1.onCreate();
application = application1;
return application1;
}
public static Application newApplication(Class<?> clazz, Context context)
throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return Instrumentation.newApplication(clazz, context);
}
@Override
@NonNull
public Application newApplication(@NonNull ClassLoader cl, @NonNull String className, @NonNull Context context)
throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return Instrumentation.newApplication(ForageFunctionalTestApplication.class, context);
}
@Override public void interceptSetupMethod(IMethodInvocation invocation) throws Throwable {
final Application application =
Instrumentation.newApplication(applicationClass, instrumentation.getTargetContext());
fieldInfo.writeValue(invocation.getInstance(), application);
invocation.proceed();
}
@Override
public Application newApplication(ClassLoader cl, String className, Context context) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return Instrumentation.newApplication(TestApplication.class, context);
}