title: Why is my reactContext variable still null?
body: <p>I am trying to send a message to react native when I receive a text message. I really need help with this and I have no clue what I am doing wrong!</p>
  
  <p>This is my Module that I created to manage sending events to react native.</p>
  
  <pre><code>public class SendEventModule extends ReactContextBaseJavaModule implements ActivityEventListener {
  
      private static ReactApplicationContext reactContext;
      //private static ReactInstanceManager sReactInstanceManager = null;
  
  
      @Override
      public String getName() {
          return "SendEventModule";
      }
  
  
      public SendEventModule(ReactApplicationContext reactContext) {
          super(reactContext);
          this.reactContext = reactContext;
          reactContext.addActivityEventListener(this);
      }
  
      public static void test(String event, WritableNativeMap params) {
          Log.e("TEST_ERROR", "This is just a test");
          //final ReactContext context = sReactInstanceManager.getCurrentReactContext();
          sendEvent((ReactApplicationContext) reactContext, event, params);
      }
  
      private static void sendEvent(ReactApplicationContext reactContext,String event, WritableNativeMap params) {
          Log.e("TEST_ERROR", "we made it to send event");
          //context = (ReactApplicationContext) this.reactContext;
          //ReactContext currentContext = getReactApplicationContext();
  
          if(reactContext != null) {
  
              reactContext.getJSModule(RCTDeviceEventEmitter.class).emit(event, params);
  
          } else {
              try {
                  reactContext.getJSModule(RCTDeviceEventEmitter.class).emit(event, params);
              }catch(Exception e) {
                  Log.e("TEST_ERROR", e.getMessage());
              }
              Log.e("TEST_ERROR", "React Context is not defined");
  
          }
  
      }
  
      @Override
      public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {}
  
      @Override
      public void onNewIntent(Intent intent){}
  
  
  }
  
  </code></pre>
  
  <p>This is my SMS receiver where I am attempting to emit my event to react native</p>
  
  <pre><code>
  public class SmsBroadcastReceiver extends BroadcastReceiver {
  
      private static ReactApplicationContext reactContext;
  
      public void onReceive(Context context, Intent intent) {
  
          Bundle intentExtras = intent.getExtras();
          Toast.makeText(context, "Message Received Bitch!", Toast.LENGTH_SHORT).show();
  
          //WritableMap params = Arguments.createMap();
          //params.putString("eventProperty", "someValue");
  
          WritableNativeMap params = new WritableNativeMap();
          params.putString("eventProperty", "someValue");
  
  
          try {
              SendEventModule.test("EventReminder", params);
  
          } catch (Exception e) {
           Log.e( "EVENT_ERROR", e.getMessage() );
          }
  
  
      }
  
  
  }
  </code></pre>
  
  <p>This is my ERROR and it is clear the reactContext is not defined and I have no idea why</p>
  
  <p>2019-10-14 12:44:56.604 17861-17861/com.test E/TEST_ERROR: Attempt to invoke virtual method 'com.facebook.react.bridge.JavaScriptModule com.facebook.react.bridge.ReactApplicationContext.getJSModule(java.lang.Class)' on a null object reference</p>
  
  <p>This is the code for my react native screen</p>
  
  <pre><code>import React from "react";
  import {
    Container,
    Header,
    Content,
    Textarea,
    Form,
    Button,
    Text,
    Left,
    Body,
    Right,
    Icon,
    Title,
    List,
    ListItem,
    Radio,
    CheckBox,
    Footer,
  FooterTab,
  Item,
  Input } from "native-base";
  import { GiftedChat } from 'react-native-gifted-chat';
  import SendSMS from 'react-native-sms-x';
  import { NativeEventEmitter, NativeModules, DeviceEventEmitter, TouchableOpacity, Image } from 'react-native';
  import { Col, Row, Grid } from "react-native-easy-grid";
  //import { setJSExceptionHandler, getJSExceptionHandler } from 'react-native-exception-handler';
  
  
  
  class NewMessageScreen extends React.Component {
  
    constructor(props) {
      super(props);
      this.state = {
        messages: [],
        data: props.navigation.state.params.data
      };
    }
  
    componentDidMount() {
  
      this.setState({
        messages: [
          {
            _id: 1,
            text: 'Hello developer',
            createdAt: new Date(),
            user: {
              _id: 2,
              name: 'React Native',
              avatar: 'https://placeimg.com/140/140/any',
            },
          },
        ],
      });
  
      const eventEmitter = new NativeEventEmitter(NativeModules.SendEventModule);
  
      eventEmitter.addListener('EventReminder', (event) =&gt; {
         console.log(event.eventProperty); // "someValue"
      });
  
  
    }
  
  
  
  
    onSend(messages = []) {
      this.setState(previousState =&gt; ({
        messages: GiftedChat.append(previousState.messages, messages),
      }));
  
      SendSMS.send(1, this.state.data.number, messages[0].text,
        (msg)=&gt;{
          alert(JSON.stringify(msg));
        }
      );
  
    }
  
  
    headerTitle() {
      //alert(JSON.stringify(this.state.data));
      if(this.state.data) {
        if (typeof this.state.data.displayName !== 'undefined') {
          return this.state.data.displayName;
  
        } else {
          return this.state.data.first_name + " " + this.state.data.last_name;
        }
      } else {
        return "Group Text";
      }
    }
  
    render() {
      return (
        &lt;Container&gt;
        &lt;Header style={{ backgroundColor: '#234561'}} transparent&gt;
          &lt;Body&gt;
            &lt;Title style={{ justifyContent: 'center', width: '100%'}}&gt;{ this.headerTitle() }&lt;/Title&gt;
          &lt;/Body&gt;
        &lt;/Header&gt;
  
          &lt;Row size={1} style={{ backgroundColor: "#234561" }}&gt;
            &lt;Col&gt;
              &lt;TouchableOpacity
                 style={{
                     borderWidth:1,
                     borderColor:'rgba(0,0,0,0.2)',
                     alignItems:'center',
                     justifyContent:'center',
                     width:65,
                     height:65,
                     backgroundColor:'#fff',
                     borderRadius:50,
                     overflow: 'hidden',
                     poisition: 'absolute',
                     left: '50%',
                     marginLeft: -33,
                     top: '50%',
                     marginTop: -33,
                     elevation: 10
                   }}
               &gt;
                 &lt;Image style={{ height: '100%', width: '100%'}} source={{ uri: 'https://icon-library.net/images/default-user-icon/default-user-icon-14.jpg' }} /&gt;
               &lt;/TouchableOpacity&gt;
            &lt;/Col&gt;
            &lt;Col&gt;
              &lt;TouchableOpacity
                 style={{
                     borderWidth:1,
                     borderColor:'rgba(0,0,0,0.2)',
                     alignItems:'center',
                     justifyContent:'center',
                     width:90,
                     height:90,
                     backgroundColor:'#fff',
                     borderRadius:50,
                     overflow: 'hidden',
                     left: '50%',
                     marginLeft: -45,
                     top: '50%',
                     marginTop: -45,
                     elevation: 10
  
                   }}
               &gt;
                 &lt;Image style={{ height: '100%', width: '100%'}} source={{ uri: 'https://icon-library.net/images/default-user-icon/default-user-icon-14.jpg' }} /&gt;
               &lt;/TouchableOpacity&gt;
             &lt;/Col&gt;
            &lt;Col&gt;
              &lt;TouchableOpacity
                 style={{
                     borderWidth:1,
                     borderColor:'rgba(0,0,0,0.2)',
                     alignItems:'center',
                     justifyContent:'center',
                     width:65,
                     height:65,
                     backgroundColor:'#fff',
                     borderRadius:50,
                     overflow: 'hidden',
                     poisition: 'absolute',
                     left: '50%',
                     marginLeft: -33,
                     top: '50%',
                     marginTop: -33,
                     elevation: 10
                   }}
               &gt;
                 &lt;Image style={{ height: '100%', width: '100%'}} source={{ uri: 'https://icon-library.net/images/default-user-icon/default-user-icon-14.jpg' }} /&gt;
               &lt;/TouchableOpacity&gt;
            &lt;/Col&gt;
          &lt;/Row&gt;
  
          &lt;Row size={4}&gt;
            &lt;GiftedChat
              messages={this.state.messages}
              onSend={messages =&gt; this.onSend(messages)}
              user={{
                _id: 1,
              }}
            /&gt;
          &lt;/Row&gt;
        &lt;/Container&gt;
      );
    }
  
  }
  
  export default NewMessageScreen;
  
  </code></pre>
  
  <p>PLEASE HELP!!!</p>