首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android应用程序中活动通信的体系结构问题

问Android应用程序中活动通信的体系结构问题
EN

Software Engineering用户
提问于 2014-03-17 16:47:09
回答 1查看 290关注 0票数 4

我为安卓维护了一个开源的Flickr应用程序格利姆。目前有一个关于分页的架构问题,我已经尝试解决了很长一段时间,并会欣赏想法。

以下是所涉及的组件:

  1. 任务- AsyncTask的各个子类,它们从诸如用户光流(LoadPhotoStreamTask)、光子集(LoadPhotoSetTask)等源获取照片。
  2. PhotoGridFragment -显示网格中任务获取的照片的片段。它的子类与每个任务相匹配,例如PhotoStreamGridFragment、PhotoSetGridFragment等。网格被分页,这样当用户滚动到照片的末尾时,任务就会被触发去获取下一页的照片。
  3. PhotoViewerActivity -负责全屏显示来自网格的照片列表。这是从PhotoGridFragments开始的,有两条信息,a)当前在网格中的照片列表,b)开始查看的索引。

当用户从PhotoViewerActivity中到达列表的末尾时,就会出现这个问题。此活动没有启动正确任务所需的信息,并更新已传递的照片列表。

我想找出一种方法来做到这一点,同时保持PhotoGridFragment和PhotoViewerActivity之间的耦合尽可能低。熟悉Android的人会知道,因为我们处理的是两种不同的活动,所以它们之间的所有通信都必须通过数据被持久化或序列化的意图进行。Afaik的PhotoViewerActivity不能轻易地打回网格,要求更多的照片。

每项任务都需要不同的状态和信息才能完成工作,这使得事情变得复杂起来。例如,一个LoadPhotosetTask需要集合id,LoadPhotoStreamTask需要一个特定的用户,但不关心设置等等。因此,仅仅将获取更多照片所需的任务名称传递给查看器活动是不够的。

另一种解决方案可以是将PhotoViewer中常见的功能片段抽象到一个抽象类中,然后为每个源创建特定的照片查看器,类似于我们为每个源提供特定PhotoGridFragments的方式。这感觉太过分了,但这可能是我现在脑海中的解决方案。

你怎么解决这个问题?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-03-22 00:34:47

您有负责管理数据的模型/业务组件/服务吗?对我来说,您的描述听起来好像您的gui元素(活动/片段)正在做这项工作。

通常的方法是有一个处理数据的模型/businscomponent/服务,并由不同的gui组件使用。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/232691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档