Ведение учета уведомлений в приемнике вещания - PullRequest
2 голосов
/ 18 февраля 2011

Я пытаюсь вести подсчет количества непрочитанных уведомлений в широковещательном приемнике, и количество непрочитанных уведомлений отображается по-разному, поскольку они накапливаются, но каждый раз, когда получатель запускается, он собирается заново инициализировать все и очиститьсчет.Как я могу контролировать счет, мне нужно будет создать еще один класс, чтобы сохранить переменные?это кажется большой работой для чего-то такого простого

1 Ответ

2 голосов
/ 18 февраля 2011

Если вы просто хотите сохранить значение между экземплярами вашего BroadcastReceiver, сохраните результат в частном объекте Preferences.Вы можете прочитать сохраненное значение в начале каждого onReceive() и записать его обратно в конце.Что-то вроде:

public static final String PREFS_NAME = "com.examples.myapplication.PREFS";
public static final String KEY_COUNT = "notificationCount";

private int currentCount;

public void onReceive(Context context, Intent intent) {
    SharedPreferences values = context.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE);
    currentCount = values.getInt(KEY_COUNT, 0);  //Sets to zero if not in prefs yet

    //Do your magic work here

    //Write the value back to storage for later use
    SharedPreferences.Editor editor = values.edit();
    editor.put(KEY_COUNT,currentCount);
    editor.commit();
}

Вы также можете написать в глобальные стандартные настройки вместо PreferenceManager.getDefaultSharedPreferences(context), что не потребует от вас определения имени.

...