diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index fa6abec6d9b10..a556a32362692 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -278,6 +278,10 @@ public final class ActivityThread { int mClientCount = 0; + Application getApplication() { + return mApplication; + } + public PackageInfo(ActivityThread activityThread, ApplicationInfo aInfo, ActivityThread mainThread, ClassLoader baseLoader, boolean securityViolation, boolean includeCode) { @@ -648,7 +652,7 @@ public final class ActivityThread { } mActivityThread.mAllApplications.add(app); mApplication = app; - + if (instrumentation != null) { try { instrumentation.callApplicationOnCreate(app); diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index f296f4376a4ff..4c2b36f0a4683 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -260,7 +260,8 @@ class ContextImpl extends Context { @Override public Context getApplicationContext() { - return mMainThread.getApplication(); + return (mPackageInfo != null) ? + mPackageInfo.getApplication() : mMainThread.getApplication(); } @Override