android.os.Handler类有一个隐藏构造函数-->void Handler(布尔异步(,
我只是想通过反思来调用这种方法,但徒劳。。。
这是我的代码:
Class clazz = Class.forName("android.os.Handler");
Constructor construct = clazz.getConstructor(boolean.class);
//Constructor construct = clazz.getDeclaredConstructor(boolean.class);
construct.setAccessible(true);
boolean[] ailments = new boolean[]{true};
Handler handler = (Handler) construct.newInstance(ailments);
错误消息是:
java.lang.NoSuchMethodException: android.os.Handler.<init>(boolean)
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getConstructor(Class.java:1825)....
我尝试迭代clazz.getConstructor((返回Constructor数组,并记录它们的ParamsType,只需找到Looper、Callback。。。
为什么它不能注销"boolean"?
public More ...Handler(boolean async) {
this(null, async);
}
我已经通过在android/sdk/platforms/android+版本代码/中导入framework.jar而不是android.jar来解决这个问题
adk已经减少了@hideapi和内部类来生成android.jar,除非我们使用framework.jar进行开发,否则我们无法使用这些资源。
在这个项目中,它提供了完整的类,其中包括@hideapi和内部类。
安卓隐藏api
我认为您只需要调用construct.newInstance(true)
,而不是将布尔值作为数组传递