自定义Parcelable对象传递给核心

时间:2010-10-06 15:20:28

标签: android marshalling parcelable

我想在我的自定义类型的额外数据中发送一个广播消息,该数据实现了Parcelable。

更多细节:我想在HS上创建一个快捷方式 但是,系统不接受我的自定义命令类型的对象,错误消息:android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.solvek.ussdfaster.entities.Command 当用户点击快捷方式时,此对象将传回我的应用程序。

    Intent shortcutIntent = new Intent(this, FormActivity.class);
    shortcutIntent.putExtra("command", command); // Note - commmand is my custom object
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    Intent intent = new Intent();
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, command.getTitle());
    Parcelable iconResource = Intent
        .ShortcutIconResource
        .fromContext(this,  R.drawable.ic_launcher);
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);
    intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");

    sendBroadcast(intent);

1 个答案:

答案 0 :(得分:0)

对于Command类,我实现了xml序列化(使用XStream)并将Serial对象序列化为String作为XML,然后传递给core。 不完美的解决方案,但它现在有效。