我如何调用 Android hide Handler(boolean b) 构造函数?
how can i call Android hide Handler(boolean b) constructor?
android.os.Handler class 有一个隐藏构造函数 --> void Handler(boolean async),
我只是想通过反射来调用这个方法,但是没有成功...
这是我的代码:
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.getConstructors() returns 构造函数数组,并记录它们的 ParamsType,只需找到 Looper、Callback ...
为什么无法登出'boolean'?
public More ...Handler(boolean async) {
this(null, async);
}
我通过在 android/sdk/platforms/android+versioncode/
中导入 framework.jar 而不是 android.jar 解决了这个问题
adk 砍掉了@hide api 和内部类 来生成android.jar,我们不能使用这些资源,除非我们使用framework.jar 来开发.
查看此项目,它提供了完整的 类,其中包括 @hide api 和内部 类。
我认为您只需要调用 construct.newInstance(true)
而不是将布尔值作为数组传递
android.os.Handler class 有一个隐藏构造函数 --> void Handler(boolean async),
我只是想通过反射来调用这个方法,但是没有成功...
这是我的代码:
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.getConstructors() returns 构造函数数组,并记录它们的 ParamsType,只需找到 Looper、Callback ...
为什么无法登出'boolean'?
public More ...Handler(boolean async) {
this(null, async);
}
我通过在 android/sdk/platforms/android+versioncode/
中导入 framework.jar 而不是 android.jar 解决了这个问题adk 砍掉了@hide api 和内部类 来生成android.jar,我们不能使用这些资源,除非我们使用framework.jar 来开发.
查看此项目,它提供了完整的 类,其中包括 @hide api 和内部 类。
我认为您只需要调用 construct.newInstance(true)
而不是将布尔值作为数组传递