在Android开发中Context或者Application对象使用是比较多的,在Activity或者Service中可以直接使用this,比较方便。但是如果在其他类中还需要传入Context对象,那么有没有方法可以直接获取Application对象呢?
通过反射方式调用系统方法可以获取:
public static Application getApplicationByReflection() {
try {
return (Application) Class.forName("android.app.ActivityThread")
.getMethod("currentApplication").invoke(null, (Object[]) null);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
查看系统文件ActivityThread.java中的方法,可以看到其中currentApplication()可以获取到当前的Application对象。

在Android开发里,Activity或Service中使用Context或Application对象方便,但其他类需传入。文章探讨能否直接获取Application对象,指出可通过反射调用系统文件ActivityThread.java中的currentApplication()方法来获取。
1039

被折叠的 条评论
为什么被折叠?



