señalar reembolso querer problema devolucion compre apps apple app android delegates callback

reembolso - Android-¿Algo similar a las devoluciones de llamada de delegado de SDK de iPhone?



reembolso de apple store (4)

Acabo de pasar de iPhone a Android y estoy buscando algo similar a dónde está en el SDK de iPhone, cuando una clase termina una tarea determinada, llama a los métodos de delegado en objetos establecidos como delegados.

No necesito demasiados detalles. Revisé los documentos y no encontré nada (lo más cercano que obtuve fue "intenciones de transmisión", que parecen más bien notificaciones de iOS).

Incluso si alguien me puede indicar la documentación correcta, sería genial.

¡Gracias!


Creo que ListAdapter es un ejemplo de patrón de delegación en Android.


El contenido principal de este video tutorial es mostrar cómo usar interfaces para delegar métodos / intercambio de datos entre diferentes Fragmentos y actividades, pero es un gran ejemplo para aprender cómo se puede implementar el patrón de delegado en Java para Android.


La devolución de llamada de Java no es lo mismo que ios delegado, en ios puede usar una devolución de llamada casi de la misma manera que en Android. En Android existe startActivityForResult que puede ayudarlo a implementar las tareas para lo que se utiliza el delegado ios.


No importa ... encontré la respuesta aquí :)

http://www.javaworld.com/javaworld/javatips/jw-javatip10.html

Pegado del artículo para preservarlo:

Los desarrolladores que conocen el modelo de programación basado en eventos de MS-Windows y X Window System están acostumbrados a pasar punteros de función que se invocan (es decir, "devueltos") cuando ocurre algo. El modelo orientado a objetos de Java actualmente no admite punteros de método, y por lo tanto parece excluir el uso de este mecanismo cómodo. ¡Pero no todo está perdido!

El soporte de interfaces de Java proporciona un mecanismo mediante el cual podemos obtener el equivalente de devoluciones de llamada. El truco consiste en definir una interfaz simple que declare el método que deseamos invocar.

Por ejemplo, supongamos que queremos ser notificados cuando ocurre un evento. Podemos definir una interfaz:

public interface InterestingEvent { // This is just a regular method so it can return something or // take arguments if you like. public void interestingEvent (); }

Esto nos permite controlar cualquier objeto de las clases que implementan la interfaz. Por lo tanto, no debemos preocuparnos por ningún otro tipo de información extraña. Esto es mucho mejor que piratear las funciones de C del trampolín que utilizan el campo de datos de los widgets para mantener un puntero de objeto cuando se usa el código C ++ con Motif.

La clase que señalará el evento debe esperar que los objetos implementen la interfaz InterestingEvent y luego invocen el método interestingEvent () según corresponda.

public class EventNotifier { private InterestingEvent ie; private boolean somethingHappened; public EventNotifier (InterestingEvent event) { // Save the event object for later use. ie = event; // Nothing to report yet. somethingHappened = false; } //... public void doWork () { // Check the predicate, which is set elsewhere. if (somethingHappened) { // Signal the even by invoking the interface''s method. ie.interestingEvent (); } //... } // ... }

En ese ejemplo, usé el predicado de algo que sucedió para rastrear si el evento debería ser activado o no. En muchos casos, el mero hecho de que se haya llamado al método es suficiente para justificar la señalización de interestingEvent () .

El código que desea recibir la notificación del evento debe implementar la interfaz InterestingEvent y simplemente pasar una referencia al notificador del evento.

public class CallMe implements InterestingEvent { private EventNotifier en; public CallMe () { // Create the event notifier and pass ourself to it. en = new EventNotifier (this); } // Define the actual handler for the event. public void interestingEvent () { // Wow! Something really interesting must have occurred! // Do something... } //... }

Eso es todo al respecto. Espero que el uso de este sencillo lenguaje Java haga que su transición a Java sea un poco menos nerviosa.