1

我正在编写一个 Android 应用程序。在这个应用程序中,用户应该能够在未来收到通知。我正在使用 AlarmManager 向我的接收器发送一个广播,该接收器内部有一个 Intent,通知为 Parceled Extra。我不想把整个代码放在这里(太多了),所以我只解释工作流程并将相关代码放在这里。

我已经扩展了 Notification 来让自己有一个 id 和一个来自我的模型的对象(模型是 Parcelable)。我注意通知在我的模型之前被打包和解包。

要发送警报,我将创建一个新的通知实例并setLatestEventInfo使用模型中的数据进行调用。如果我直接推送此通知,一切都很好。

之后,我创建了一个新的 Pending-Broadcast-Intent。放在广播中的意图将我的通知作为 ParcelableExtra。然后我通过 AlarmManager.set() 触发 PendingIntent。如果时间到了,我会在我的 BroadcastReciever 中收到广播。

我从我的 Intent 中获取了额外的内容,并想看看,有一个我用来存储它的密钥“NotificationExtra”。在那次通话中,我得到了一个 ClassCastException。如果您对某些代码示例感兴趣,请随时提问。任何想法会出什么问题?我可以将空值存储为 Parcelables 吗?如果我可以存储空值,它们可以被正确读取吗?

4

0 回答 0