我需要为下一次实施提供建议。
我有一个应用程序,它有不同的部分。每个人都有一个或多或少差异化的目标。
其中一个是聊天。这个聊天是一个活动,它有3个片段,比如Whatsapp,但更简单。
当我开始活动时,我启动了一个连接到XMPP服务器,用户获取,消息,邀请等的服务....
当我开始与用户聊天时,开始一项新活动。 (这很重要)
当XMPP服务接收到的东西时,我通过sendbroadcast发送片段并更新信息。到目前为止一样好,因为活动及其三个片段我都记在内存中,我可以更新它们各自的对象。
我的问题是下一个: 当我与用户打开聊天时,打开一个新活动,然后无法访问我需要的对象。 (例如用户列表,现在如果我的服务收到友情请求,我无法添加,因为该对象没有)
我该怎么办?
据我所知3个选项:
1-通过意图开始对象,显然我必须做一些parceables。当您关闭聊天活动时,请返回更新的对象。
2-创建一个单例对象(正如我读到的,许多内存丢失问题)
3-之后,我将不得不创建一个SQLite来保存消息历史记录。我可以使用这个数据库暂时保留这些对象吗?
你最好有选择吗?不同的推荐?
答案 0 :(得分:1)
两个选项2& 3可用于解决您的问题。 选项2更简单,可以是实施的第一步。 但是,如果您计划将来使用SQL,选项3似乎是您选择的正确选项。它可以帮助您解耦数据存储部分和从实际UI中获取。 至于你关于DB是否可以保存临时数据的问题,你可以在不再需要它时清理相关的表(例如,每当你启动应用程序并拥有旧数据时)。
我建议你看一个很好的参考是CursorLoaders。