2012-09-26 16 views
13

En Android tenemos 2 formas de configurar un evento de clic de un boton (o cualquier otro punto de vista creo):¿Cuál es mejor con respecto al rendimiento: setOnClickListener VS Android: onclick = "onclick"

Escenario uno (mediante programación):

Button b = (Button) findViewById(R.id.mybutton); 
b.setOnClickListener(this); 

Escenario dos (en el archivo XML):

<Button android:onClick="handler" /> 

¿Está el ¿Hay alguna penalización en el rendimiento por hacer esto en XML o programáticamente o es lo mismo?

+0

No soy un experto de ninguna manera, pero diría que la forma programática es mejor en el rendimiento ... básicamente es lo mismo, pero en la forma XML se agrega un paso, creo, en el que XML es analizado pero podría estar equivocado, solo estoy especulando. – Fustigador

+0

No creo que marque una diferencia significativa. Si te encuentras con problemas de rendimiento, esa no es la manera de resolverlos. Supongo que si usa tantos botones para marcar la diferencia, entonces el verdadero problema es su diseño. – IchBinKeinBaum

Respuesta

1

Ambos tienen el mismo rendimiento. Xml es pre-analizado en código binario durante la compilación. por lo tanto, no hay ningún problema en Xml.

0

La única forma de saber es a través de pruebas unitarias. Depende totalmente de cómo se haya manejado por debajo ... Si no estoy adivinando correctamente, declararlo en xml podría ser un poco más lento ya que el xml debe analizarse y luego se debería llamar al método ... Aún no se puede estar seguro, es una opción pura del diseñador de Android OS

+0

Puede ser correcto, pero el preparsing se realiza solo una vez en el tiempo de cálculo. Cuando la aplicación se publica como APK, ya es código binario. –

Cuestiones relacionadas