Я использую пользовательский 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)
Так есть ли способ обойти эту проблему? Любая помощь будет оценена.
Спасибо