Android - Получение контекста из метода, вызываемого в onReceive? - PullRequest
0 голосов
/ 25 февраля 2019

Как вы получаете context из метода, который был вызван из onReceive?

Вот пример того, что я пытаюсь выполнить:

@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);
}

Как видите, поскольку методы вызываются несколько раз / путями, перемещение всего кода внутри onReceive в конечном итоге будет очень повторяющимся и крайне неэффективным.

Любая помощьС благодарностью!
Спасибо.

1 Ответ

0 голосов
/ 25 февраля 2019

Передайте это Context:

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