如何在整个应用程序中维护对象的状态并同时更改UI

时间:2017-11-21 14:04:13

标签: java android design-patterns

我正在开发一个具有HomeFragment的应用程序,该应用程序显示您正在关注的用户的帖子。现在每个帖子都有喜欢和评论选项,当您点击用户个人资料图片或名称时,它会将您重定向到他/她的个人资料,再次显示他/她的所有帖子。现在,再次点击其中一个帖子,它会重定向到发布详细信息屏幕,该屏幕实现了ViewPager,您可以通过向左或向右交换来更改帖子。

我的问题是每个帖子都有喜欢和评论选项,喜欢和评论计数,如果你喜欢任何一个帖子,那么它应该反映所有活动(主页,用户个人资料和帖子详细信息)。

目前我正在使用startActivityForResult和onActivityResult处理所有这些(例如:如果你喜欢在第2位发帖,当你点击后退按钮然后我发送新位置的那个位置并通过新的计数通知那个特定位置HomeFragment)非常令人困惑,我认为这不是正确的解决方案。

是否有任何设计模式或任何其他机制来处理这个问题?

如果你没有得到我的问题然后告诉我,我会详细说明。

谢谢。

2 个答案:

答案 0 :(得分:1)

我的应用中的方法:

在activity onCreate中我启动Intent服务以从服务器加载数据。在Intent服务中,数据从服务器加载,然后解析并推送到本地数据库(我使用超快速Realm database)。意图服务完成后,会通知UI刷新其内容。当您返回上一个活动onResume被调用,我从数据库重新加载数据并刷新UI。

总而言之,UI仅适用于存储所有数据的本地数据库。在后台线程上加载新数据时,此数据也会被推送到本地数据库。因此,无需在活动之间发送加载的数据(仅需要对象ID),因为数据库始终包含最新数据。

答案 1 :(得分:0)

您可以创建singltone class,其中包含每个帖子的评论和评论。 每次打开活动/片段时,都会从此类中提取数据。 每次用户添加喜欢或评论时,您都会将数据推送到此课程。

我还建议你看看MVP pattern