tengo una actividad en el paquete A (SignerClient), y un servicio en el paquete B (MyService)Android ResultReceiver través de paquetes
resultreceiver de la actividad:
private ResultReceiver resultreceiver = new ResultReceiver(null) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
...
}
};
Inicio del servicio:
Intent intent = new Intent("com.example.STARTSERVICE");
intent.putExtra("resultreceiver", resultreceiver);
startService(intent);
extremo receptor:
ResultReceiver rr = (ResultReceiver) intent.getParcelableExtra("resultreceiver");
Hacer esto cuando el cliente y el servidor están en el mismo paquete funciona bien. Pero en este caso me sale:
FATAL EXCEPTION: IntentService[MyService]
android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.example.cryptoclient.SignerClient$1
at android.os.Parcel.readParcelable(Parcel.java:1883)
at android.os.Parcel.readValue(Parcel.java:1771)
at android.os.Parcel.readMapInternal(Parcel.java:2008)
at android.os.Bundle.unparcel(Bundle.java:208)
at android.os.Bundle.getParcelable(Bundle.java:1100)
at android.content.Intent.getParcelableExtra(Intent.java:3396)
at org.axades.service.MyService.onHandleIntent(MyService.java:28)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.os.HandlerThread.run(HandlerThread.java:60)
¿Qué me falta? ¿Mi idea es posible?
Dado que este tema es bastante antiguo: esta clase de la biblioteca de soporte se agregó en el paquete 'android.os' de Android Lollipop en adelante, y el problema parece resuelto en el proceso. Asegúrese de importar el correcto ... (ver la respuesta a continuación) –