Como caso de intercepción en Java

vasyl:

Estoy trabajando en una aplicación en reacciono nativo y he implementado un módulo que envía eventos de Java a js para que pueda ser escuchado en reaccionar nativa.

¿Hay alguna manera de escuchar en otro archivo de java?

Aquí es el caso de ejemplo:

            int score = 10;

            sendEvent("SCORE", score);

El propio módulo se ve de la siguiente manera:

// Called to emit events to event listeners in JS
private void sendEvent(String eventName, int result) {
    getReactApplicationContext()
            .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
            .emit(eventName, result);

Puedo leerlo con oyente js, pero no tienen idea de cómo leerlo en otro archivo java.

sorifiend:

La mejor manera de hacer esto es probablemente para almacenar el nombre del resultado y el evento como una variable de Java, a continuación, puede fácilmente acceder a él desde otro lugar.

Lo primero que debe hacer es hacer una variable de Java, que estará disponible a partir de otra clase (público) y darle un valor por defecto para evitar cualquier problema.

//Create Java variables
public static int myValueResult = 0;
public static string myValueName = "";

// Called to emit events to event listeners in JS
private void sendEvent(String eventName, int result) {
getReactApplicationContext()
        //JS Method
        .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
        .emit(eventName, result);

        //Add an extra line that saves the result and eventName to the Java variables we made 
        myValueResult = result;
        myValueName = eventName;
}

Ahora se puede obtener el resultado de otra clase de Java, como a continuación. Basta con sustituir classWithEventcon el nombre verdadero de la clase que contiene el sendEventmétodo:

int resultFromOtherClass_result = classWithEvent.myValueResult;
string resultFromOtherClass_name = classWithEvent.myValueName;

Editar: Este evento ya está haciendo la escucha, así que no hay necesidad de escuchar en otra clase de Java. En su lugar, sólo tiene que llamar a un método en otra clase, un poco como esto, entonces cada vez que el sendEvent ocurre que puede hacer lo que quiera con él en esa clase:

myOtherClass.doEvent(eventName, result);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=218452&siteId=1
Recomendado
Clasificación