2012-02-07 65 views
2

我目前正在製作一個使用通知的應用程序。用戶看到它後可以刪除/取消通知嗎?

我能夠顯示通知,並在用戶點擊通知列表時將其從通知列表中刪除。但是,如果用戶看到它們,但我不會對它們採取行動,我還希望我的通知消失。

例如,用戶顯示通知列表,然後點擊不是我的通知,或者只是關閉通知列表。在這些情況下,我試圖讓我的通知被取消,並在下次用戶顯示通知列表時不顯示,即使他沒有對我的通知做任何事情。

這可能嗎?

謝謝! :D

(編輯:如果您想知道爲什麼我想到這個,一個非常簡單的解釋就是:將通知視爲敬酒,而不是長期存在的敬酒,並確保用戶實際上。在消失之前看到它)

+2

即使是可能的,這似乎是一個壞主意。我說,讓用戶決定是否要刪除它們。 – 2012-02-07 09:35:13

回答

0

這是非常容易的,有一個取消方法的通知:

public void cancel (int id) 

取消先前顯示通知。如果是暫時的,視圖將被隱藏。如果它是持久的,它將從狀態欄中刪除。

public void cancel (String tag, int id) 

取消先前顯示的通知。如果是暫時的,視圖將被隱藏。如果它是持久的,它將從狀態欄中刪除。

public void cancelAll() 

取消先前顯示的所有通知。有關詳細行爲,請參閱cancel(int)。

詳情請看這裏: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int

更新

如果要取消當用戶看到該通知您的通知,也應該是一個標誌,FLAG_AUTO_CANCEL:

Notification notification1 = new Notification(R.drawable.icon, "test", 
    System.currentTimeMillis()); 
notification1.flags |= Notification.FLAG_AUTO_CANCEL; 
+0

但是,我會調用這些方法的觸發器是什麼?我想我的問題是:我怎麼知道用戶已經看到我的通知,以便我可以取消它? – hoki 2012-02-07 09:50:32

+0

如果你想自動取消你的通知,這是一個標誌。我已經更新了我的答案,看到了。 – 2012-02-07 09:52:46

+0

如果我沒有弄錯,Notification.FLAG_AUTO_CANCEL會在用戶點擊它後取消通知。我也認爲它會「自動取消」我的通知,但在使用它之後,它不是那種我仍在尋找的「自動」...(雖然,我想我不會推出我的想法..) – hoki 2012-02-07 10:09:46

0

您可以通過將其ID提供給取消方法來刪除通知:

((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancel(your_notification); 

然而,我不建議你這樣做,因爲它可能會混淆用戶

+0

「我不會推薦你這樣做,因爲它可能會混淆用戶」 - >謝謝,我會考慮這個.. :) – hoki 2012-02-07 09:53:06

相關問題