我已经被这个困扰了一段时间了。我正在开发一个 android 应用程序,该应用程序存储一个人的渔获量、最喜欢的钓鱼地点、钓具箱库存和其他数据。我所有的类都是可序列化的,并且可以在迄今为止似乎工作的活动之间保存和加载。但我预测随着越来越多的数据被存储,应用程序将开始运行缓慢。
我基本上要问的是有什么方法可以在整个应用程序中保留这些数据,所以我不必在每次弹出新屏幕时都加载它。我已经找到了以下信息来提供帮助,但我需要更清楚一些才能理解:
另一个论坛说你可以把它塞进 Application 对象中:
[Application]
public class MyApp : Android.App.Application {
public MyApp(IntPtr handle)
: base (handle)
{
}
public FishingData Data {get; set;}
}
然后在您的活动中:
((MyApp) this.ApplicationContext).Data = value;
所以我以前从未真正听说过使用这种方法,我不确定这是否会贯穿整个应用程序过程(我觉得无论哪种方式都必须通过序列化加载数据。这就是我想要应用程序做的事情:
第一个活动是主菜单,在屏幕加载时必须完成以下操作:
- 如果找到设置文件,使用序列化加载以前的 FishingData 对象(我知道怎么做)
- 如果没有,则创建一个新的干净的 FishingData 对象以稍后保存(我也知道这一点)
- 所以现在我们有了一个 FishingData 对象,我如何确保我不必在每个活动中重复步骤 1-2。我怎样才能以某种方式将 FishingData 对象传递给下一个活动,并确保它在应用程序仍然存在时全局存在。我只想加载一次(通过序列化)(<--不知道如何执行此操作),并且仅在用户向该对象添加数据时才保存它(我知道该怎么做)。
任何帮助将不胜感激。这让我很烦恼,我似乎无法弄清楚。这似乎是一件很常见的事情,但我没有找到任何详细信息。