java - 过度使用 Application 类来存储持久数据

标签 java android

我正在制作一个必须在 Activity 之间共享大量(相对)数据的应用程序。起初,我通过序列化或使其可打包来在 Activity 之间传递数据,但它很快变得困惑(尤其是当我需要在用户按下 BACK 时保留数据时)。现在我决定使用 Application 类将其存储在全局单例中。 现在它变得更清晰、更简单(这是我想要这样做的主要原因)。 并不是说​​它是相关的,而是它是一个餐厅订购应用程序和我存储的数据全局是:

  1. 所有菜单项的列表。 HashMap < Integer, ArrayList>(我从服务器获取它们,因此它可能会在两次启动之间发生变化)。
  2. 包含用户添加到其中的所有东西的购物车 HashMap < Integer, HashMap >
  3. 一个简单的字符串。

问题很简单: “大佬们”是怎么做到的?我使用 Application 类是否正确?我需要担心在这里存放太多东西吗?我是否应该放弃它并使用 Serializable/Parcelable 的东西并不断将它们放入 Intent 中?

最佳答案

您怀疑您对 Application 的使用是对此类的轻微滥用,这是正确的。特别是,您正在将其转变为数据库。在尝试跨 Activity 保持数据状态一致时,您已经看到了这方面的问题。

您可以利用 Android 对 SQLite 的内置支持,而不是那样做。 .如果想走捷径,直接获取对象,可以使用OrmLite for Android。 .

关于java - 过度使用 Application 类来存储持久数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17339603/

相关文章:

java代码从服务器下载图像到客户端

java - 在 jenkins 上将 windows 7 slave 连接到 debian master

java - JAXB,如何为具有元素重复属性的模式生成类

android - 我应该为数字杂志应用程序进行混合开发还是本地开发?

android - 是否可以从android中的视频网址生成缩略图

Android Application Init 和全局对象

java - Cxf Web服务设计问题

java - JAX-WS 客户端获取响应 header

android - 在 android studio 中使用 gradle 构建变体的最佳实践

java - 尝试在 Android 中将文件写入 sdcard 时出现 FileNotFoundException(权限被拒绝)