我安排多意圖具體PendingIntents被髮送到廣播接收器。 每一個意圖之間的區別是什麼時候會被接收並額外的數據包含的時間。取消與AlarmManager
現在我需要允許用戶取消特定的報警。據AlarmManager.cancel()的javadoc,它採用filterEquals方法比較意圖:
http://developer.android.com/reference/android/content/Intent.html#filterEquals(android.content.Intent)
現在的問題是,根據filterEquals,我所有的意圖是相同的。方法檢查「動作,數據,類型,類和類別」。
並且唯一的數據可能是意圖額外捆綁或作爲AlarmManager中的時間。 我試圖改變任何這些參數 - 例如使用:
intent.setData(Uri.withAppendedPath(Uri.EMPTY, "some_unique_data"));
這將使每一個意圖唯一根據filterEquals方法,但改變的數據,以這樣的事情後,我的意圖沒有達到廣播接收器了。
根據filterEquals,我可以更改哪些特定數據位以使每個意圖唯一且仍然可以接收到我的簡單BroadcastReceiver?
也許我可以用任何方式修改我的接收器?
有一個稱爲requestCode PendingIntent.getBroadcast方法內部的參數,但因爲它的文檔狀態:「發件人requestCode私人請求碼(當前未使用)。」。這是否意味着,該代碼沒有以任何方式使用,或者我可以將其指定爲用於取消未決意圖的唯一ID? – Kostas 2012-03-09 15:25:43
你能接受你的答案嗎?這將從開放問題列表中刪除此問題,並可能幫助其他人解決類似問題。謝謝。 – 2017-09-18 14:58:28