2015-12-18 5 views

答えて

0

IはMainActivityクラスにReactInstanceManagerへの静的参照を保存し、そしてpublic static getContext()方法を追加することにより仮これを解決しました。それは正しく感じませんが、うまくいくようです。

public final class MainActivity extends ReactActivity { 

    private static ReactInstanceManager sReactInstanceManager = null; 

    /* [...] */ 

    @Override 
    protected ReactInstanceManager createReactInstanceManager() { 
     ReactInstanceManager manager = super.createReactInstanceManager(); 
     sReactInstanceManager = manager; 
     return manager; 
    } 

    public static ReactContext getContext() { 
     if (sReactInstanceManager == null){ 
      // This doesn't seem to happen ... 
      throw new IllegalStateException("Instance manager not available"); 
     } 
     final ReactContext context = sReactInstanceManager.getCurrentReactContext(); 
     if (context == null){ 
      // This really shouldn't happen ... 
      throw new IllegalStateException("React context not available"); 
     } 
     return context; 
    } 

    /* [...] */ 
} 

createReactInstanceManager()ReactActivity年代onCreate()メソッドによって呼び出さので、私はそれがsReactInstanceManagerが正しいインスタンスを指すようになりますが、それは私の言葉を取ることはありませんと仮定しても安全だと推定されます。

0

ReactInstanceManagerにスタティックリファレンスを使用する必要はありません。 getReactNativeHost().getReactInstanceManager()を呼び出すことで入手できます。

関連する問題