Cannot resolve symbol ‘ActivityThread‘ | Android 语法
背景
ActivityThread 是 Android 系统内部使用的一个类,它位于 android.app 包中,但在 Android SDK 的公共 API 中并没有公开。
由于 ActivityThread 是隐藏的内部类,因此在编写单元测试或功能开发时,无法直接引用它。可以使用反射来访问内部 API,或者使用依赖注入的方式来模拟 ActivityThread 的行为。
方法
1、通过反射来访问 ActivityThread
public static Context getAppContext() {
Context appContext = null;
try {
Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");
Object activityThread = activityThreadClass.getMethod("currentApplication").invoke(null);
appContext = ((Context) activityThread).getApplicationContext();
} catch (Throwable e) {
Log.e(TAG, "getAp