React Native:是否可以在应用程序重新加载时保留本机 Java 变量值?
React Native: Is it possible to persist native Java variable values on app reload?
是否可以在重新加载 JS 时在自定义 React Native 模块中维护 Java 变量的值?为了调试目的,我想在下面的代码中维护 components
。如果应用程序进入后台,它会在 onHostResume 上持续存在,但在重新加载时该值会丢失。
public class CustomModule extends ReactContextBaseJavaModuleWithEvents implements LifecycleEventListener {
public List<JsonObject> components = new ArrayList<>();
public CustomModule(ReactApplicationContext reactContext) {
super(reactContext);
reactContext.addLifecycleEventListener(this);
}
@ReactMethod
void addComponents(component) {
// add some components...
components.add(component);
}
@Override
public String getName() {
return "CustomModule";
}
@Override
public void onHostResume() {
getReactApplicationContext()
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("DEBUG_TAG", components.toString());
}
}
每次重新加载 JS 代码都会创建一个新的 CustomModule 实例来重新初始化组件。我应该将组件列表设置为静态 class 变量,这样它只被初始化一次。
public class CustomModule extends ReactContextBaseJavaModuleWithEvents implements LifecycleEventListener {
public static List<JsonObject> components = new ArrayList<>();
}
是否可以在重新加载 JS 时在自定义 React Native 模块中维护 Java 变量的值?为了调试目的,我想在下面的代码中维护 components
。如果应用程序进入后台,它会在 onHostResume 上持续存在,但在重新加载时该值会丢失。
public class CustomModule extends ReactContextBaseJavaModuleWithEvents implements LifecycleEventListener {
public List<JsonObject> components = new ArrayList<>();
public CustomModule(ReactApplicationContext reactContext) {
super(reactContext);
reactContext.addLifecycleEventListener(this);
}
@ReactMethod
void addComponents(component) {
// add some components...
components.add(component);
}
@Override
public String getName() {
return "CustomModule";
}
@Override
public void onHostResume() {
getReactApplicationContext()
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("DEBUG_TAG", components.toString());
}
}
每次重新加载 JS 代码都会创建一个新的 CustomModule 实例来重新初始化组件。我应该将组件列表设置为静态 class 变量,这样它只被初始化一次。
public class CustomModule extends ReactContextBaseJavaModuleWithEvents implements LifecycleEventListener {
public static List<JsonObject> components = new ArrayList<>();
}