2
我試圖保持廣播接收器中未讀通知的數量,並且在累積時未讀通知的數量顯示不同,但每次接收器被觸發時重新初始化一切並清除計數。我如何保持對計數的控制,我將不得不創建另一個類來保持變量?這看起來像很多工作只是如此簡單在廣播接收器中保持通知的數量
我試圖保持廣播接收器中未讀通知的數量,並且在累積時未讀通知的數量顯示不同,但每次接收器被觸發時重新初始化一切並清除計數。我如何保持對計數的控制,我將不得不創建另一個類來保持變量?這看起來像很多工作只是如此簡單在廣播接收器中保持通知的數量
如果你只是想在你的BroadcastReceiver的實例之間保持一個值,將結果存儲在一個私人的首選項對象。您可以在每個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)
代替,這不會需要你定義一個名字。