2011-02-17 28 views
2

我試圖保持廣播接收器中未讀通知的數量,並且在累積時未讀通知的數量顯示不同,但每次接收器被觸發時重新初始化一切並清除計數。我如何保持對計數的控制,我將不得不創建另一個類來保持變量?這看起來像很多工作只是如此簡單在廣播接收器中保持通知的數量

回答

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)代替,這不會需要你定義一個名字。