有问题的Android项目已经使用Serializable在内部模块之间传递信息。
我正在研究其中一个也使用外部库来计算导航路线的模块。
我需要将其中一个“外部”对象传递给另一个模块,这不是Serializable,所以我无法正常发送它。我之前的程序员已经在Wrapper类中的静态变量中转换了所有不可序列化的对象,我不确定这是不是一个好主意,即使模块应该始终保持活动状态。
这是Serializable包装类:
private void FwdImgChng(object sender, TappedRoutedEventArgs e)
{
//if (currentIndex == 11)
//{ return; }
currentIndex++;
if (currentIndex > 10)
{
currentIndex = 10;
return;
}
Header.Source = new BitmapImage(new Uri("ms-appx:///Assets/LearnColor/Header/_0000_header_" + currentIndex + ".png"));
image.Source = new BitmapImage(new Uri("ms-appx:///Assets/LearnColor/Object/ob_" + currentIndex + "_0.png"));
prevObjBtn.Source = new BitmapImage(new Uri("ms-appx:///Assets/LearnColor/Button/prev" + currentIndex + ".png"));
fwdObjBtn.Source = new BitmapImage(new Uri("ms-appx:///Assets/LearnColor/Button/next" + currentIndex + ".png"));
HeaderName.Text = Headername[currentIndex];
objNameWritten.Text = objnamewritten[currentIndex];
objNameWritten.Foreground = Headername[currentIndex];
mediaElement1.Source = new Uri("ms-appx:///Assets/LearnColor/Objectnamesmp3/" + currentIndex + "_0.mp3");
mediaElement1.AutoPlay = true;
}
将道路描述为瞬态会让我失去数据,为道路编写一个完整的包装类会有太多的工作(需要构建叠加层,所以很多Geometry都在内部并且来自外部库所以我可能会忘记东西)。将整个项目更改为Parce也是不现实的。
有什么解决方案吗?真正的最好方法是将我需要的东西保存为静态吗?
答案 0 :(得分:0)
尝试使用EventBus。发送Sticky事件,包含对象引用。它将被传递给每个订阅的对象,直到您明确取消该事件。
答案 1 :(得分:0)
也许您可以使用事件(http://greenrobot.org/eventbus/)将对象传递到您需要的位置。