Android - Getting Context from a Method called within onReceive?

38 Views Asked by At

How do you retrieve a context from within a Method that was called from onReceive?

Here is an Example of what I'm trying to accomplish:

@Override
public void onReceive(Context context, Intent intent) {
    ...
    ...
    if(...) {
        callMethodOne();
        callMethodTwo();
    } else if (...) {
        callMethodOne();
    }
    ...
}

private void callMethodOne() {
    // Cant use getApplicationContext
    SharedPreferences getPrefs =
      PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
}

private void callMethodTwo() {
    // Cant use getSystemService
    NotificationManager notificationManager =
      (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
}

As you can see, since the Methods are called multiple times/ways, moving all the code to be inside onReceive would end up being very repetitive and extremely inefficient.

Any help is greatly appreciated!
Thank you.

1

There are 1 best solutions below

1
Ivan Wooll On BEST ANSWER

Pass it the Context:

private void callMethodOne(Context context) {
    // Can't use getApplicationContext
    SharedPreferences getPrefs =
        PreferenceManager.getDefaultSharedPreferences(context);
}