В проекте Android уже используется Serializable для передачи информации между внутренними модулями.Отправка Parcelable объектов как Serializable
Я работаю над одним из тех модулей, которые также используют внешние библиотеки для расчета навигационных маршрутов.
Мне нужно передать один из этих «внешних» объектов другому модулю, это не является Serializable, поэтому я не могу его нормально отправлять. Передо мной программист превратил все несериализуемые объекты в статические переменные в классе Wrapper, я не уверен, что это хорошая идея, хотя модули должны оставаться активными все время.
Это Сериализуемый класс-оболочка:
private static Road road;
private NavigationStep firstNavigationStep;
/**
* To send the route information to the App. Here is everything the app needs to display the
* data to the user.
* @param road the route the user is to follow
* @param firstNavigationStep the users location and the current Step.
*/
public CurrentRoad(Road road, NavigationStep firstNavigationStep){
this.firstNavigationStep = firstNavigationStep;
this.road = road;
}
Дать Дорогу, как преходящий заставляет меня терять данные, написав целый класс обертку для дороги было бы слишком много работы (это необходимо для создания наложений, так много геометрии внутри и из внешней библиотеки, поэтому я могу что-то забыть). Изменение всего проекта на Parcelable также нереально.
Есть ли решение? Лучше всего просто сохранить то, что мне нужно, как статическое?
Существует уже служба сообщений, описанная в нашей архитектуре, она использует Serializable. Это MessageManger, написанная кем-то еще в проекте. Я немного новичок в команде, и проект охватывает более чем одну компанию, поэтому добавление внешней библиотеки не так просто – Raeglan