Android-从onReceive中调用的方法获取上下文?

时间:2019-02-25 15:30:09

标签: android broadcastreceiver android-context android-broadcastreceiver

如何从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 :(得分:2)

将其传递给Context

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