Рассматриваемый проект Android уже использует Serializable для передачи информации между внутренними модулями.
Я работаю над одним из тех модулей, который также использует внешние библиотеки для расчета маршрутов навигации.
Мне нужно передать один из этих «внешних» объектов другому модулю, это не Serializable, поэтому я не могу отправить его в обычном режиме. Программист до меня преобразовал все несериализуемые объекты в статические переменные в классе-оболочке, я не уверен, что это хорошая идея, хотя модули должны оставаться активными все время.
Это класс-оболочка Serializable:
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;
}
Написание Road как переходного процесса приводит к потере данных, написание целого класса-оболочки для дороги было бы слишком трудоемким делом (он необходим для создания оверлеев, поэтому много геометрии находится внутри и взято из внешней библиотеки, поэтому я могу что-то забыть). Менять весь Project на Parcelable тоже не реально.
Есть ли решение? Действительно ли лучший способ просто сохранить то, что мне нужно, как статическое?