Android - android:onClick和实现OnClickListener之间的效率有什么不同(主要是指一个Button)

时间:2012-12-21 23:15:13

标签: android xml performance button onclick

我刚刚遇到android:onClick="myCrazyMethod" XML属性,看起来非常简洁。

我只是想知道这种方法之间的性能是否有任何差异 - 声明一个简单的方法并创建一个OnClickListener类?

3 个答案:

答案 0 :(得分:1)

没有明显的区别。选择只是开发人员的偏好。

答案 1 :(得分:1)

没有显着差异,所以你应该使用任何一个清洁剂。 android:onClick是使用运行时内省实现的,所以它在技术上较慢,但我们此时分裂了头发=)

答案 2 :(得分:1)

在XML中声明它的速度有点慢但不是很多。但是,在xml中定义onClick可能会导致proguard出现问题(除非您实现下面的代码)。就个人而言,我觉得最简单的是在onclicklistener中使用一个开关和case,但是如果这个方法要长得多,那么给它自己的方法很好,以便“隐藏”它。但是,如果你需要在按下任何按钮后运行公共代码(例如UI刷新),最好将它留给开关和case或if / else。但是,所有这些当然是我对此事的看法。

//只为想要在xml和proguard中使用OnClick的人添加

添加:

-keepclassmembers class * extends android.app.Activity { 
 public void *(android.view.View); 
}