2017-04-01 75 views
0

掛起的意圖和通知每當我試圖更新通知或意向一個新的創建,而不是我不想要的。我認爲問題在於,當我試圖更新它時,意圖不會被識別。對代碼的鏈接低於:如何更新和刪除的Android

https://gist.github.com/Kerron-Hutton/03799ac497128919225bbbd4efaffa25

+0

代碼究竟哪裏是你的更新發生?或者更確切地說是您在代碼中的更新位置? – Remario

+0

也是此行data.getID(),嘗試調試,看看ID是你想要的,我的意思是這個ID是更新 – Remario

+0

也是要傳遞的ID的道路上的關鍵,是不是真的reccomended,創建一個常數具有所有通知ID的獨立類,然後基於意圖調用它。這些常量是public static final – Remario

回答

1
  1. 要更新PendingIntent,你應該使用相同的REQUEST_CODE您之前用於創建它。

    PendingIntent pIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    
  2. 要取消/刪除現有PendingIntent,您可以使用PendingIntent.cancel()方法。

    PendingIntent.getBroadcast(context, REQUEST_CODE, intent, 
            PendingIntent.FLAG_UPDATE_CURRENT).cancel(); 
    
  3. 要更新Notification,你可以使用NotificationManager.notify()方法與您要更新的NOTIFICATION_ID

    NotificationManager notificationManager= (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);  
    notificationManager.notify(NOTIFICATION_ID, notification); 
    

    通知id應該是你的應用程序中是唯一的。如果具有相同id一個 通知已經張貼您的 應用程序,還沒有被取消,這將是由 更新的信息所替代。

  4. 要取消/刪除現有Notification,使用NotificationManager.Cancel()方法要取消NOTIFICATION_ID

    notificationManager.cancel(NOTIFICATION_ID); 
    

希望這將有助於〜