Лучший способ сделать это, вероятно, сохранить результат и имя события как переменную java, тогда вы можете легко получить к нему доступ из другого места.
Первое, что нужно сделать, это создать переменную java, которая будет доступна из другого класса (public), и присвоить ей значение по умолчанию, чтобы избежать каких-либо проблем.
//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;
}
Теперь вы можетеполучить результат из другого Java-класса, как показано ниже.Просто замените classWithEvent
реальным именем класса, содержащего ваш sendEvent
метод:
int resultFromOtherClass_result = classWithEvent.myValueResult;
string resultFromOtherClass_name = classWithEvent.myValueName;
Редактировать: Это событие уже выполняет прослушивание, поэтомунет необходимости слушать в другом классе Java.Вместо этого вы можете просто вызвать метод в другом классе, примерно так, а затем, когда произойдет sendEvent, вы можете делать с ним все, что захотите, в этом классе:
myOtherClass.doEvent(eventName, result);