AlarmManager で Parcelable ではないオブジェクトを受け渡したいとき


AlarmManager では Serializable のオブジェクトは渡せない

  Android の Activity 間では Intent には bundle.putSerializablebundle.getSerializable を使ってシリアライズ可能なオブジェクトを受け渡しできます。 しかしこれと同じ感覚で AlarmManager に投げてもレシーバー側で受け取れません。

AlarmManager では Parcelable なオブジェクトでしか扱ってくれません。そこで Serializable なオブジェクトを byte[] に変換して受け渡します。

送り側

送信したいオブジェクトが data だとします。

受信側

受け取る BroadcastReceiver では以下のように取り出します。

Parcelable インターフェースを実装したくないときはこの方法で回避できるかもしれません。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です