我正在制作一个必须在 Activity 之间共享大量(相对)数据的应用程序。起初,我通过序列化或使其可打包来在 Activity 之间传递数据,但它很快变得困惑(尤其是当我需要在用户按下 BACK 时保留数据时)。现在我决定使用 Application 类将其存储在全局单例中。 现在它变得更清晰、更简单(这是我想要这样做的主要原因)。 并不是说它是相关的,而是它是一个餐厅订购应用程序和我存储的数据全局是:
- 所有菜单项的列表。 HashMap < Integer, ArrayList>(我从服务器获取它们,因此它可能会在两次启动之间发生变化)。
- 包含用户添加到其中的所有东西的购物车 HashMap < Integer, HashMap >
- 一个简单的字符串。
问题很简单: “大佬们”是怎么做到的?我使用 Application 类是否正确?我需要担心在这里存放太多东西吗?我是否应该放弃它并使用 Serializable/Parcelable 的东西并不断将它们放入 Intent 中?
最佳答案
您怀疑您对 Application 的使用是对此类的轻微滥用,这是正确的。特别是,您正在将其转变为数据库。在尝试跨 Activity 保持数据状态一致时,您已经看到了这方面的问题。
您可以利用 Android 对 SQLite 的内置支持,而不是那样做。 .如果想走捷径,直接获取对象,可以使用OrmLite for Android。 .
关于java - 过度使用 Application 类来存储持久数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17339603/