背景
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