Я хочу создать ярлык рабочего стола для внутреннего действия моего приложения. This Ответ помог мне начать.Android: ярлык Homescreen с Serializable Extra
Вот основной код:
Intent shortcutIntent = new Intent(context.getApplicationContext(),
StationMainActivity.class);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
shortcutIntent.setAction(Intent.ACTION_MAIN);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, stationData.getName());
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(context.getApplicationContext(),
R.drawable.ic_launcher));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
addIntent.putExtra("duplicate", false);
context.getApplicationContext().sendBroadcast(addIntent);
К сожалению, в то время как она работает, чтобы обеспечить дополнительную строчной тип код появляется сбой при попытке обеспечить сериализации дополнительным к shortcutIntent.
shortcutIntent.putExtra("StationId", (String) stationData.getId());
. Произведение. Но
shortcutIntent.putExtra("StationData", stationData);
, где stationData - это сериализуемый объект, нет. Поэтому прямо сейчас я предоставляю все поля объекта как строку и воссоздаю объект при вызове операции. Это работает, но это громоздкий и грязный код.
Любая идея, почему предоставление сериализуемого объекта в этом случае не работает? Благодарю.
Update: Вот как я пытаюсь извлечь Serializeable:
stationData = (StationData) intent.getSerializableExtra("StationData");
StationData выглядит следующим образом:
public class StationData implements Serializable {
private String id;
private String name;
...
public StationData(String id, String name, ....) {
this.id = id;
this.name = name;
...
}
}
Является ли ваша stationData расширяемой от сериализуемой? также можете ли вы предоставить код о том, как вы получаете дополнительные услуги? – PedroAGSantos
Да, это так. Сериализация хорошо работает, если она не используется для назначения ярлыков. – Androidicus
Можете ли вы предоставить код при получении сериализации? – PedroAGSantos