0

嗨,我正在为 android 开发聊天应用程序(只是私人项目)

  • 用户有联系人列表,他可以在其中选择联系人(让我们将此活动称为contact_activity)。
  • 当他选择联系人时,下一个活动(我们称之为 chat_activity)打开,他可以在那里与其他用户写消息,但是当用户按下后退按钮并再次恢复同一个聊天室时,之前活动对话中的所有内容都将被删除。
  • 我想存储并显示用户输入的每个活动对话接收到的数据,直到他手动关闭对话或关闭应用程序。

什么解决方案更优化?

  • 将每个 chat_activity 的数据传回 contact_activity,然后在用户通过创建新活动“恢复”chat_activity 时将其传回
  • 我听说过一些关于活动堆栈的魔法,因此可以最大限度地减少活动,然后以某种方式使用旧数据上下文恢复它。

感谢您的建议。

4

2 回答 2

1

我不熟悉你说的魔法……

但是保存数据不是活动的工作,他们的工作是向他们展示。

我建议的解决方案是你有一个ChatManager,例如,它是一个单例。该管理器可以为您的所有活动聊天 [自您打开应用程序后打开的聊天] 保存某种数据结构,可能Map其键是代表Contact您聊天的模型对象,值可能是Messages 所属的列表到那个聊天会话。

活动“保存和恢复”技术并不是要在活动完全完成和稍后打开之间保持数据,而是要在某种配置更改期间保留数据,或者由于内存不足或其他原因导致您的活动被操作系统杀死..

于 2014-10-21T23:21:52.180 回答
0

我认为最好的解决方案是存储活动,然后恢复它们。

如果需要,您还可以通过覆盖某些方法在恢复时更新它们。

查看这篇文章以获取有关存储活动的更多详细信息:使用保存实例状态保存 Android 活动状态

于 2014-10-21T22:43:03.733 回答