保持广播接收器中的通知计数

时间:2011-02-17 21:18:42

标签: android count notifications

我正在尝试对广播接收器中未读通知的数量进行计数,并且未读通知的数量会随着累积而显示不同,但每次接收器被触发时,它都会重新初始化所有内容并清除伯爵。如何控制计数,我是否必须创建另一个类才能保留变量?对于这么简单的事情,这似乎很多工作

1 个答案:

答案 0 :(得分:2)

如果您只想在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)写入全局标准首选项,而不需要您定义名称。