2015-11-17 31 views

回答

5

您可以从Java中使用定义在这里RCTDeviceEventEmitter.emit方法来发送事件:DeviceEventManagerModule.java#L27

要做到这一点,你首先需要有参考ReactApplicationContext,然后调用:

reactAppContext 
    .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) 
    .emit("keyboardWillShow1", null); 

而不是“空”,您可发送随机数据,然后将其附加到您在JS端收到的事件。

查看这个DeviceEventManagerModule.java#L49作为一个例子 - 这是如何返回按钮事件发送到JS。

然后,您可以使用类似的方式分派从活动/onResume事件,假设你有参考ReactApplicationContext

另一种方法是创建自定义模块,可用于接收生命周期事件注册。看看它是如何在“定时”模块进行:

  1. “时序”模块实现LifecycleEventListener.java接口
  2. 当模块初始化注册自身通过该接口来接收生命周期Timing.java#L126
  3. 您可以实现onHostPauseonHostResume方法的接口,并使用上面的代码片段从那里派遣事件
+0

谢谢!我一直在寻找如何实现onPause和onResume! –

相关问题