我已经被这个问题困扰了一段时间。
我正在开发一个Android应用程序,用于存储人们的钓鱼记录、喜欢的钓鱼地点、渔具箱清单和其他数据。我的所有类都是可序列化的,并且可以在活动之间保存和加载,目前似乎运行良好。但是随着越来越多的数据被存储,我预测该应用程序将开始变慢。
我基本上想问的是是否有任何方法可以在整个应用程序中保留此数据,以便在新屏幕弹出时无需每次加载它。我已经找到了以下信息来帮助解决,但需要更加清晰易懂:
另一个论坛说你可以把它放在Application对象中:
我基本上想问的是是否有任何方法可以在整个应用程序中保留此数据,以便在新屏幕弹出时无需每次加载它。我已经找到了以下信息来帮助解决,但需要更加清晰易懂:
另一个论坛说你可以把它放在Application对象中:
[Application]
public class MyApp : Android.App.Application {
public MyApp(IntPtr handle)
: base (handle)
{
}
public FishingData Data {get; set;}
}
然后在你的Activity内部:
((MyApp) this.ApplicationContext).Data = value;
我以前从未听说过这种方法,而且我不确定这种方法能否通过整个应用程序的流程(我觉得无论如何都必须通过序列化加载数据)。以下是我希望应用程序执行的操作:
第一个活动是主菜单,当屏幕加载时,需要执行以下操作:
- 如果找到设置文件,则使用序列化加载以前的FishingData对象(我知道如何做到这一点)
- 如果没有找到设置文件,则创建一个新的干净的FishingData对象以备后用(我也知道如何做到这一点)
- 现在我们有了一个FishingData对象,如何确保我不必在每个活动中重复步骤1-2。我如何将FishingData对象传递给下一个活动,并确保它在应用程序仍在运行时全局存在。我只想通过序列化加载一次(<--我不知道如何做到这一点),并且仅在用户向此对象添加数据时保存它(我知道如何做到这一点)。
任何帮助都将不胜感激。这让我很困扰,我似乎无法解决这个问题。这似乎是一个常见的事情,但我没有找到任何详细的信息。