从Activity类调用方法(React Native Android)

从Activity类调用方法(React Native Android),android,react-native,react-jsx,Android,React Native,React Jsx,是否有从活动类调用方法的api?我需要在我的应用程序上调用finish(),但在文档中找不到任何相关内容 更具体地说,我想在按下特定的TouchableHighlight时,从我的index.android.jsx中选择finish()main活动 [更新] 目前,我正在从我的NativeModule中公开一个finish()方法,但也许有更好的方法可以做到这一点 我也看不到一种内置的方法可以做到这一点,我也使用您使用的NativeModule方法 但是,如果在构建ReactInstanceMa

是否有从
活动
类调用方法的api?我需要在我的应用程序上调用
finish()
,但在文档中找不到任何相关内容

更具体地说,我想在按下特定的
TouchableHighlight
时,从我的index.android.jsx中选择
finish()
main活动

[更新]

目前,我正在从我的NativeModule中公开一个
finish()
方法,但也许有更好的方法可以做到这一点


我也看不到一种内置的方法可以做到这一点,我也使用您使用的
NativeModule
方法

但是,如果在构建
ReactInstanceManager
时调用
setCurrentActivity
,则可以从模块调用
getCurrentActivity
,而不是通过
ReactPackage
ReactModule
构造函数传递它

MyReactModule.java

public class MyReactModule extends ReactContextBaseJavaModule {

    public MyReactModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return getClass().getSimpleName();
    }

    @ReactMethod
    public void finish() {
        Activity activity = getCurrentActivity();
        if (activity != null) {
            activity.finish();
        }
    }

}
MyReactPackage.java

public class MyReactModule extends ReactContextBaseJavaModule {

    public MyReactModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return getClass().getSimpleName();
    }

    @ReactMethod
    public void finish() {
        Activity activity = getCurrentActivity();
        if (activity != null) {
            activity.finish();
        }
    }

}
公共类MyReactPackage实现ReactPackage{

    @Override
    public List<Class<? extends JavaScriptModule>> createJSModules() {
        return Collections.emptyList();
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }

    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        List<NativeModule> modules = new ArrayList<>();
        modules.add(new MyReactModule(reactContext));
        return modules;
    }

}

您可以在activity类中调用finish()来销毁该活动。这就是您要问的吗?不,我想从index.android.jsxdid上的React本机组件中调用它。如果您只想做
finish(),那么您是否可以找到此@Buenofilepe的任何解决方案我也有相同的问题
React Native活动,然后您可以从
React Native
导入
BackAndroid
,然后使用
BackAndroid.exitApp()
。嘿,谢谢你,@mpkuth。不幸(幸运地?),我不再使用React-Native,但我相信你的答案对其他人会有用。我必须为finish方法使用不同的名称Hello@mpkuth,你能帮我找到一个想法吗?我的意思是,我想从本机java代码中打开React-Native组件