私はAndroidアプリケーションを書いています。このアプリでは、ユーザーは将来通知を受信できる必要があります。AlarmManager を使用してブロードキャストをレシーバーに送信しています。レシーバーには、Intent があり、通知が Parceled Extra として含まれています。ここにコード全体を載せたくないので (かなり)、ワークフローだけを説明し、関連するコードをここに載せます。
通知を拡張して、自分のモデル (モデルはパーセル可能) から ID とオブジェクトを取得できるようにしました。モデルの前に、通知がパーセル化およびアンパーセル化されるように注意します。
アラームを送信するには、新しい通知インスタンスを作成setLatestEventInfo
し、モデルからのデータを呼び出します。この通知を直接プッシュすると、すべて問題ありません。
その後、新しい Pending-Broadcast-Intent を作成します。ブロードキャスト内に配置されたインテントは、私の通知を ParcelableExtra として受け取ります。次に、その PendingIntent を AlarmManager.set() 経由で起動します。時間が来たら、BroadcastReciever でブロードキャストを受信します。
私はインテントからエクストラを取得し、それを保存するために使用したキー「NotificationExtra」があるかどうかを確認したいと思います。その呼び出しで、ClassCastException が発生します。いくつかのコード サンプルに興味がある場合は、お気軽にお問い合わせください。何がうまくいかないのでしょうか?null 値を Parcelables として保存できますか? また、null 値を格納できれば、正しく読み取ることができますか?