【发布时间】:2011-08-10 06:03:01
【问题描述】:
我在包 A (SignerClient) 中有一个活动,在包 B (MyService) 中有一个服务
活动的结果接收者:
private ResultReceiver resultreceiver = new ResultReceiver(null) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
...
}
};
启动服务:
Intent intent = new Intent("com.example.STARTSERVICE");
intent.putExtra("resultreceiver", resultreceiver);
startService(intent);
接收端:
ResultReceiver rr = (ResultReceiver) intent.getParcelableExtra("resultreceiver");
当客户端和服务器在同一个包中时这样做可以正常工作。但在这种情况下,我得到:
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)
我错过了什么?我的想法是否可行?
【问题讨论】:
-
因为这个话题很老了:支持库中的这个类被添加到包
android.os从android Lollipop开始,这个问题似乎在这个过程中解决了。确保导入正确的...(见下面的答案)
标签: android ipc android-service