最佳方式持久性对象具有来自其他活动的{3}个片段的活动

时间:2016-10-11 17:02:45

标签: android android-activity xmpp persistence

我需要为下一次实施提供建议。

我有一个应用程序,它有不同的部分。每个人都有一个或多或少差异化的目标。

其中一个是聊天。这个聊天是一个活动,它有3个片段,比如Whatsapp,但更简单。

当我开始活动时,我启动了一个连接到XMPP服务器,用户获取,消息,邀请等的服务....

当我开始与用户聊天时,开始一项新活动。 (这很重要)

当XMPP服务接收到的东西时,我通过sendbroadcast发送片段并更新信息。到目前为止一样好,因为活动及其三个片段我都记在内存中,我可以更新它们各自的对象。

我的问题是下一个: 当我与用户打开聊天时,打开一个新活动,然后无法访问我需要的对象。 (例如用户列表,现在如果我的服务收到友情请求,我无法添加,因为该对象没有)

我该怎么办?

据我所知3个选项:

1-通过意图开始对象,显然我必须做一些parceables。当您关闭聊天活动时,请返回更新的对象。

2-创建一个单例对象(正如我读到的,许多内存丢失问题)

3-之后,我将不得不创建一个SQLite来保存消息历史记录。我可以使用这个数据库暂时保留这些对象吗?

你最好有选择吗?不同的推荐?

1 个答案:

答案 0 :(得分:1)

两个选项2& 3可用于解决您的问题。 选项2更简单,可以是实施的第一步。 但是,如果您计划将来使用SQL,选项3似乎是您选择的正确选项。它可以帮助您解耦数据存储部分和从实际UI中获取。 至于你关于DB是否可以保存临时数据的问题,你可以在不再需要它时清理相关的表(例如,每当你启动应用程序并拥有旧数据时)。

我建议你看一个很好的参考是CursorLoaders