ReactContextBaseJavaModule中的getCurrentActivity返回null

时间:2017-08-01 10:33:37

标签: react-native react-native-android

我正在使用React Native 0.46编写原生Android模块,但我无法从模块中获取当前活动实例。

我有一个扩展ReactContextBaseJavaModule的类,它包含一个内置的getCurrentActivity()方法。但是,每次调用此方法时,我都会得到一个null。

我认为这是因为我在我的模块构造函数中调用它,它在Android应用程序的开头执行,也许在实例化Activity之前?

如果你们知道从模块中访问当前Activity实例的干净方法(如果可能的话,不必在某个时刻存储一个Activity实例并传递它),我会很高兴的!

2 个答案:

答案 0 :(得分:1)

Myk Willis 答案相同,getCurrentActivity 可以在 @ReactMethod 内部访问,如下例所示:

public class ExampleModule extends ReactContextBaseJavaModule {
    Activity activity;
    @ReactMethod(isBlockingSynchronousMethod = true)
    public void MinimizeExample(String params) {
        activity = getCurrentActivity();        // get current activity
    }
}

答案 1 :(得分:0)

根据本地本机GitHub页面上的these posts,根据设计,您无法在本机模块的构造函数中访问当前活动。这些模块可以跨活动使用,并且可以在关联的活动恢复之前创建。

期望您可以在操作期间在需要时使用getCurrentActivity,例如从模块中的任何@ReactMethod中使用。