【问题标题】:React native + Android Activity onPause/onResumeReact Native + Android Activity onPause/onResume
【发布时间】:2015-11-17 13:39:26
【问题描述】:

我有一个带有下一个发射器的 js 代码:

DeviceEventEmitter.addListener('keyboardWillShow1', function(e: Event) {
  console.log(e);
});

如何从 Activity onPause/onResume 发出此事件?

【问题讨论】:

    标签: android android-activity react-native


    【解决方案1】:

    您可以使用此处定义的 RCTDeviceEventEmitter.emit 方法从 java 发送事件:DeviceEventManagerModule.java#L27

    为此,您首先需要参考ReactApplicationContext,然后调用:

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

    您可以发送任意数据而不是“null”,然后将这些数据附加到您在 JS 端收到的事件。

    DeviceEventManagerModule.java#L49 为例 - 这就是将返回按钮事件发送到 JS 的方式。

    然后,您可以使用类似的模式从活动 onPause/onResume 调度事件,假设您引用了 ReactApplicationContext

    另一种方法是创建您的自定义模块,该模块可以注册以接收生命周期事件。在“计时”模块中查看它是如何完成的:

    1. “定时”模块实现LifecycleEventListener.java接口
    2. 当模块初始化时,它会通过该接口注册自己以接收生命周期Timing.java#L126
    3. 您可以实现该接口的onHostPauseonHostResume 方法,并使用上面的sn-p 从那里分派事件

    【讨论】:

    • 谢谢!我一直在寻找如何实现 onPause 和 onResume!
    【解决方案2】:

    我相信现在react-native-activity-android 模块可以做到这一点。

    【讨论】:

      猜你喜欢
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多