android - React native + Android Activity onPause/onResume

标签 android android-activity react-native

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

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

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

最佳答案

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

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

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

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

查看此 DeviceEventManagerModule.java#L49例如 - 这就是后退按钮事件发送到 JS 的方式。

假设您引用了 ReactApplicationContext

,然后您可以使用类似的模式从 Activity onPause/onResume 中调度事件

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

  1. “计时”模块实现LifecycleEventListener.java界面
  2. 当模块初始化时,它注册自己以通过该接口(interface)接收生命周期 Timing.java#L126
  3. 您可以实现该接口(interface)的 onHostPauseonHostResume 方法,并使用上面的代码 fragment 从那里分派(dispatch)事件

关于android - React native + Android Activity onPause/onResume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758390/

相关文章:

android - 为什么 react-native 原始应用程序的大小约为 7mb 到 8mb?

javascript - 在 ReactNative 中,如何在不检查所有前面变量可用性的情况下检查嵌套变量的可用性?

java - 在日/夜模式之间切换时启用平滑的 Activity 过渡

javascript - 无法使用 Node js 为 gcm 创建 notification_key

java - Android - 按下时显示上次查看的 Activity (主页按钮 ->应用程序快捷方式)

android - 不移动下一个 Activity 从android中的另一个 Activity 发送数据

android - 如何返回 Activity 堆栈中某处的 Activity ?

Android 如何请求其他用户的操作或批准 - 概念

java - 在android studio中更改构建sdk时出错

javascript - 如何在 React Native 中创建和保存 CSV 文件?