2013年7月16日 星期二

Android Notification PendingIntent Received Old Intent

在 Android 中遇到點了 Notification 但是 Activity 卻的 onNewIntent 收到舊的 Intent 的狀況。

有兩種解法,各有各的用途和適合情況。

1. 在 PendingIntent.getActivity(context, requestCode, intent, flag) 的 flag 傳入 PendingIntent.FLAG_UPDATE_CURRENT

這種作法會在 requestCode 相同,但收到多個 Notification 時,只會保留最後的 PendingIntent。
官方文件說 requestCode 沒有用到是騙~人~的!
適合用在如只需要保留最後最新的資訊用到。

2. 在 PendingIntent.getActivity(context, requestCode, intent, flag) 的 requestCode 傳入 count

這個 count 是用來計算這是發第幾個通知。通常會和 NotificationManager.notify(count, pendingIntent) 用同一個。
這適合用在每則通知都要傳入不同的通知訊息內容時使用。

沒有留言:

張貼留言