我想扩展我之前的问题。
如果在我的代码中有未来 API 提供的方法,如果我检查版本,我在 LogCat 中有以下警告
04-24 09:30:12.565: I/dalvikvm(471): Could not find method android.view.ViewTreeObserver.removeOnGlobalLayoutListener, referenced from method com.my.project.ActivityHome.removeLayoutListenerPost16
04-24 09:30:12.565: W/dalvikvm(471): VFY: unable to resolve virtual method 2950: Landroid/view/ViewTreeObserver;.removeOnGlobalLayoutListener (Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
就我而言(请参阅链接的问题),我可以使用反射解决
try {
Method m = ViewTreeObserver.class.getMethod("removeOnGlobalLayoutListener", OnGlobalLayoutListener.class);
m.invoke(observer, listener);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
我的问题是:最好使用反射并避免警告,还是最好忽略警告避免反射?
我的反射代码没有捕获异常,但我不确定它是否正确,是吗?