我想扩展我的previous question。调用未来API提供的方法
如果在我的代码有一个由未来的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();
}
我的问题是:最好是使用反射和避免警告,或者我最好忽略避免反射的警告?
我的反射代码没有捕获异常,但我不确定它是否正确,是吗?
我会去思考哪个平台。什么是“我的反思代码没有捕获异常,但我不确定它是否正确,是吗?”意思 ?你正在捕捉错误,但你没有管理它 – Blackbelt 2013-04-24 13:33:06
这意味着它是我第一次使用反射,并且我没有找到方法“removeOnGlobalLayoutListener”的例子,所以我尝试了解它是如何工作的,并且经过了很多捕获异常的尝试我找到“似乎”可以工作的发布代码。我问的是代码是否正确 – crbin1 2013-04-24 13:38:01
是的它是...... – Blackbelt 2013-04-24 13:39:23