有沒有辦法讓Notification
的發件人知道何時將Notification
發送給接收器?即某些方法可以檢查用戶是否點擊了給定的Notification
。Android:如何檢查是否發送了待處理的通知?
我想要完成的是:我的Service
發送一個通知PendingIntent
啓動ActivityA。但是,如果用戶在未點擊通知的情況下啓動ActivityA,我希望該服務取消Notification
並將直接意向發送給活動A
有沒有辦法讓Notification
的發件人知道何時將Notification
發送給接收器?即某些方法可以檢查用戶是否點擊了給定的Notification
。Android:如何檢查是否發送了待處理的通知?
我想要完成的是:我的Service
發送一個通知PendingIntent
啓動ActivityA。但是,如果用戶在未點擊通知的情況下啓動ActivityA,我希望該服務取消Notification
並將直接意向發送給活動A
您的流程對我來說沒有多大意義。如果用戶打開ActivityA,爲什麼要打開另一個ActivityA實例?我不確定還有什麼「向ActivityA發送直接Intent
」意味着什麼。我認爲在所有情況下,ActivityA都會取消Notification
,並在所有情況下向服務部門提供最新數據。
如果這種模式不適合你,那麼讓你的Notification
使用服務PendingIntent
。請注意,用戶點擊了Notification
,然後讓服務啓動ActivityA。這給用戶帶來了同樣的效果(點擊通知,獲取ActivityA),但是你的服務發現了有關點擊的信息。
或者,在活動PendingIntent
中使用Intent
,該活動與ActivityA通常以其開頭的Intent
不同。有ActivityA告訴服務,「喲,我在所有情況下都會給我一個Intent
,喲」。如果服務提出了Notification
並且ActivityA指示它從常規Intent
開始,則請告知ActivityA執行某些操作。如果服務提出了Notification
,並且ActivityA指示它開始於Notification
的Intent
,請執行其他操作。
要澄清,如果ActivityA已打開,服務將不會打開另一個ActivityA實例(假設它爲StartActivity意圖設置正確的標誌)。 當ActivityA已處於活動狀態時,「直接意圖」是指sendBroadcast()到ActivityA。 通過服務服務「注意到」用戶點擊了通知,是否將PendingIntent設置爲服務本身? – theactiveactor 2010-08-10 02:32:51
「A」直接意圖「當ActivityA已處於活動狀態時表示sendBroadcast()給ActivityA」活動不聽廣播。不過,一個活動可以動態註冊一個BroadcastReceiver。 「通過服務服務」注意到用戶點擊了通知,是否將PendingIntent設置爲服務本身?「我不知道這句話的意思,對不起。 – CommonsWare 2010-08-10 12:25:57