public class AppGlobal {
private static Application sApp;
public static Application getApplication() {
if (sApp == null) {
try {
sApp = (Application) Class.forName("android.app.ActivityThread")
.getMethod("currentApplication")
.invoke(null, (Object[]) null);
} catch (IllegalAccessException | NoSuchMethodException | InvocationTargetException | ClassNotFoundException e) {
e.printStackTrace();
}
}
return sApp;
}
}
有些場(chǎng)景下,我們需要獲取Application,查看android.app.ActivityThread的源碼,
public static Application currentApplication() {
ActivityThread am = currentActivityThread();
return am != null ? am.mInitialApplication : null;
}
我們可以通過反射獲取Application