我寫了下面的方法來檢查的通知是活動的(可見狀態欄上):的PendingIntent支左右通知駁回後
public static boolean isNotificationActive(Context context, int id) {
Intent intentPopup = new Intent(context, PopupActivity.class);
PendingIntent test = PendingIntent.getActivity(context, id, intentPopup, PendingIntent.FLAG_NO_CREATE);
return test != null;
}
我創建的PendingIntent酷似一個我想檢查(同樣的'intentPopup'和'id'被傳遞給這個PendingIntent),並且由於FLAG_NO_CREATE,如果它尚不存在,我預計這個PendingIntent爲null。我在多年前在這裏發表的一篇帖子中讀到了這種方法。
如果通知尚未發出,則該方法返回期望值(false)。當通知發出並處於狀態欄時,該方法返回true。
但是,在我關閉通知後,該方法仍然返回true,就好像PendingIntent仍然存在。
我在這裏錯過了什麼? PendingIntent仍然可用或者我誤解了某些內容?
有沒有更好的方法來檢查一個特定的通知是否處於活動狀態(顯示在狀態欄中)?
編輯:這裏是一個創建的通知代碼:
Intent intentPopup = new Intent(context, PopupActivity.class);
intentPopup.putExtra("id", id);
intentPopup.putExtra("timeQ", timeQ);
PendingIntent pendingIntentPopup = PendingIntent.getActivity(context, id, intentPopup, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntentPopup)
.setSmallIcon(R.drawable.q_notification_icon)
.setContent(contentView)
.setSound(Uri.parse("android.resource://" + context.getPackageName() + "/raw/notification_sound"))
.setVibrate(vibrate_pattern);
Notification notification = mBuilder.build();
notification.flags |= Notification.FLAG_NO_CLEAR;
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(id, notification);
發佈您用於創建'Notification'的代碼 –
@DavidWasser發佈。 –