Я использую настраиваемый Parcelable для переноса некоторых данных в BroadcastReceiver. Вот что я делаю:
Я регистрирую свое намерение и устанавливаю дополнительный Parcelable на нем вместе с дополнительным загрузчиком классов (intent.setExtraClassLoader(..)). Затем я планирую выполнение трансляции через AlarmManager.
Поэтому, когда срабатывает AlarmManager, он смотрит на мое намерение с его посылкой, которую он не может обработать, так как он не использует поставляемый загрузчик классов (поскольку он сется).
Я думаю, что загрузчик классов теряется, когда Inten.fillIn копирует намерение в новый (см. трассировку стека).
02-21 21:09:25.214: WARN/Intent(52): android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.company.project.MyParcelable
02-21 21:09:25.214: WARN/Intent(52): at android.os.Parcel.readParcelable(Parcel.java:1822)
02-21 21:09:25.214: WARN/Intent(52): at android.os.Parcel.readValue(Parcel.java:1713)
02-21 21:09:25.214: WARN/Intent(52): at android.os.Parcel.readMapInternal(Parcel.java:1947)
02-21 21:09:25.214: WARN/Intent(52): at android.os.Bundle.unparcel(Bundle.java:169)
02-21 21:09:25.214: WARN/Intent(52): at android.os.Bundle.putAll(Bundle.java:242)
02-21 21:09:25.214: WARN/Intent(52): at android.content.Intent.fillIn(Intent.java:4530)
02-21 21:09:25.214: WARN/Intent(52): at com.android.server.am.PendingIntentRecord.send(PendingIntentRecord.java:185)
02-21 21:09:25.214: WARN/Intent(52): at android.app.PendingIntent.send(PendingIntent.java:400)
02-21 21:09:25.214: WARN/Intent(52): at com.android.server.AlarmManagerService$AlarmThread.run(AlarmManagerService.java:636)
Итак, есть ли какой-либо путь вокруг этой проблемы? Любая помощь будет оценена.
Спасибо