How to get Application's Context without dependencies
2818 단어 reflectioncontextno dependency
How to get Application's Context without dependencies
/** * Created by zhangls on 2016/7/6. */
public class ContextProvider {
private static Context sContext = null;
/** * Get application context. * * @return */
public static Context getApplicationContext() {
if (sContext != null) {
return sContext;
}
try {
//1. ActivityThread
Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");
//2. ActivityTread currentApplication
Method currentActivityThreadMethod = activityThreadClass.getDeclaredMethod("currentApplication");
// Api,
currentActivityThreadMethod.setAccessible(true);
//3. ActivityTread.currentApplication()
Application currentApplication = (Application) currentActivityThreadMethod.invoke(null);
sContext = currentApplication.getApplicationContext();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
if (sContext == null) {
throw new NullPointerException("Global application uninitialized");
}
return sContext;
}
private ContextProvider() {
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin 반사iOS(iOS 이상)와 안드로이드 응용 프로그램의 엔지니어. 반년은 주로 안드로이드였다. 나는 Oisix에서 일한다. Java 등 언어별 반사 기능을 갖춘 Kotlin 버전입니다. 클래스 구조 (예: 속성) 를 읽거...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.