English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Análisis de uso de clases internas anónimas y funciones de devolución de llamada en Android

Este ejemplo describe el uso de la clase interna anónima y la función de devolución de llamada en la programación de Android. Compartimos esto con todos para su referencia, como se detalla a continuación:

En el desarrollo de Android, utilizamos a menudo algunas clases internas anónimas y sus funciones de devolución de llamada, por ejemplo, cuando configuramos un escucha de clic en un Button, generalmente debemos implementar el interfaz OnCLickListener y sobrescribir el método Onclick (), esto es una clase interna anónima y una función de devolución de llamada, entonces ¿cuánto entiendes de las clases internas anónimas y las funciones de devolución de llamada en Java? Este documento proporciona una explicación bastante detallada.

Primero debe saber que la clase interna es una parte principal de Java. La clase interna puede estar en cualquier posición dentro de una clase, puede estar en el mismo nivel que las variables de instancia o dentro de un método, e incluso puede ser una parte de una expresión. Las clases internas de Java se dividen en clases internas de miembros, clases internas locales y clases internas anónimas, y a continuación, hablaremos de las clases internas anónimas.

A. Sobre la función de devolución de llamada

La clase interna anónima utiliza una función de devolución de llamada, ¿qué es una función de devolución de llamada?

Lo que se llama devolución de llamada es que el programa cliente C llama a una función A en el programa de servicio S, y luego S llama de nuevo a una función B en C en algún momento, para C, esta B se llama función de devolución de llamada. Por ejemplo, Win32La función de proceso de ventana en el nivel inferior es una función de devolución de llamada típica. En términos generales, C no llama a B por sí mismo, el propósito de proporcionar B por parte de C es permitir que S lo llame, y es algo que C debe proporcionar. Dado que S no conoce el apellido y nombre de B proporcionado por C, S acordará el estándar de interfaz (prototipo de función) de B, y luego C lo informará anticipadamente a S a través de una función R, que se llama función de registro. Web Service y RMI de Java utilizan el mecanismo de devolución de llamada para acceder a programas de servidores remotos. A continuación, se utilizará un ejemplo para explicar:

El programador A escribió un programa (programa a), en el que se reservó una interfaz de función de devolución de llamada y encapsuló el programa. El programador B desea que a llame a su programa b, por lo que, a través de la interfaz de a, devuelve su método b. El objetivo se ha alcanzado. En C/C++En él, se debe usar la función de devolución de llamada, la función de devolución de llamada necesita informar al llamador de la dirección de su puntero, pero en JAVA no hay punteros, ¿qué hacer? Podemos implementar la definición de la función de devolución de llamada a través de una interfaz (interface).

Supongamos que soy el programador A, aquí está mi programa a:

public class Caller
{
  public MyCallInterface mc;
  public void setCallfuc(MyCallInterface mc)
  {
    this.mc= mc;
  }
  public void call(){
    this.mc.method();
  }
}

Necesito definir una interfaz para que el programador B escriba el programa según mi definición.

public interface MyCallInterface
{
  public void method();
}

Por lo tanto, el programador B solo necesita implementar esta interfaz para lograr el objetivo de la devolución de llamada:

public class B implements MyCallInterface
{
  public void method()
  {
    System.out.println("devolución de llamada");
  }
  public static void main(String args[])
  {
    Caller call = new Caller();
    call.setCallfuc(new B());
    call.call();
  }
}

B. Sobre la clase interna anónima

Para entender qué es una clase interna, el papel de la clase interna, la polimorfia en Java, y qué es una función de devolución. Hay muchas explicaciones detalladas en línea, pero solo se ha hecho una explicación simple por simplicidad. La clase interna anónima se pasa como parámetro a un método, en este método, se recibirá la clase interna anónima con un tipo de interfaz, luego se llamará su método, esto es polimorfismo. El principio es implementar una devolución de llamada. Porque llamará al método de su clase interna anónima. El siguiente código está escrito a mano y no ha sido probado, solo para demostrar.

interface InterfaceA{
   String go();
}
class Test{
   public void prtGo(InterfaceA ia){
     System.out.println(ia.o());
   }
  public static void main(String []args){
     Test t = new Test();
     t.prtGo(new InterfaceA(){
       public String go(){
         return"go";
       }
     });
   }
}

Los lectores interesados en más contenido relacionado con Android pueden ver la sección especial de este sitio: 'Tutorial de Inicio y Avanzado de Desarrollo de Android', 'Consejos de Depuración y Resolución de Problemas Comunes en Android', 'Consejos de Operación de Multimedia en Android (audio, video, grabación, etc.)', 'Resumen de Uso de Componentes Básicos en Android', 'Resumen de Habilidades de Vista View en Android', 'Resumen de Habilidades de Diseño de Layout en Android' y 'Resumen de Uso de Controles en Android'

Espero que lo descrito en este artículo pueda ayudar a todos en el diseño de programas Android.

Declaración: El contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio no posee los derechos de propiedad, no ha sido editado artificialmente y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @) para denunciar, y proporcione evidencia relevante. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustaría que te gustara