我遇到了在Android中銷燬通知的問題。 我的應用程序在特定的時間生成一些通知,我想在一段時間後(60秒)自動刪除。 通知由BroadcastReceiver
創建,它捕獲由alarmManager
創建的廣播,然後從廣播的intent
中提取信息並創建通知。 有時候這種方式有效,有時候不行。
我認爲這是因爲android終止某個過程或類似的東西,但我無法在網上找到任何東西。 這裏是我的代碼片段:Android通知不被破壞
Notification notification = mBuilder.build();
notification.flags = Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONLY_ALERT_ONCE;
notification.defaults = Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS;
final NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(notificationId,notification);
Log.d("AlarmReveiver","id della notifica: " + String.valueOf(notificationId));
//cancella la notifica quando l'orario è passato
Handler handler = new Handler();
long delay = 60*1000;
final int lullo = notificationId;
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d("Handler","id della notifica: " + String.valueOf(lullo));
notificationManager.cancel(lullo);
}
},delay);
notificationId++;
注意notificationId
是static int
;我猜想我可以使用一個靜態變量來創建迄今爲止創建的通知數量,以避免與通知ID混淆,但是我看到這個計數器在一段時間後被重新初始化爲0。
有沒有人知道一個更好的方式(一種方法,每次工作大聲笑)做到這一點?
在此先感謝
這就是我所懷疑的。非常感謝,我會看看你的班級並修復一切。 謝謝! – magicleon