Domanda

Voglio inviare un messaggio broadcast con l'intenzione all'interno di dati aggiuntivi del mio tipo personalizzato che implementa Parcelable.

Nel dettaglio: Voglio creare un collegamento sul HS Tuttavia il sistema non accetta oggetto della mia misura Tipo di comando, il messaggio di errore: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.solvek.ussdfaster.entities.Command Questo oggetto verrà passato di nuovo alla mia applicazione quando l'utente fa clic sul collegamento.

    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);
È stato utile?

Soluzione

Per la classe di comando ho implementato serializzazione XML (utilizzando xstream) e serializzato oggetto Command di String come XML e quindi passato al nucleo. Non perfetta soluzione, ma funziona per il momento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top