分享

多activity还是单activity的选择

 gearss 2016-05-22
Quote: 引用 21 楼 Ycloud520 的回复:
Quote: 引用 18 楼 tiantang198707 的回复:
用一个activity的话,个人认为,如果是一个简单的应用的话,会方便一些,少去了一些数据信息的交换,等于说有一个一个共享的对象用来存储运行时数据。
但是对于复杂的应用来说就不是很适合,首先一个activity结构就不合适,让所有的UI天然的耦合在一起。这样以来,UI的逻辑,数据的初始化,每一个细节都要自己考虑到,因为共享数据 ,所以数据访问控制,多线问题就会变的越来越麻烦。

所以小应用可以用,大一些的应用不建议,个人认为。

先谢谢你的回答,不过第二段听的不是很明白。多activity UI的逻辑,数据的初始化不也是需要自己考虑,自己控制吗?
对的,因为是用一个activity,所以view是共用一个context的,这会对数据访问控制,多线问题造成什么麻烦吗?希望您能说的具体一点

首先说一下结构,你之前说用一个antivity可以方便解决startActivityForResult的问题,这个就要看什么结构,一般的这样的做法使得界面间产生了外部数据耦合,这是一种高耦合,是软件设计不建议的。而startActivityForResul是通过参数列表,是一种弱耦合,是可以的。
但是在一些模块,比如支付流程,会有第一步,第二步到支付完成,这个整体上是一个复杂的模块,使用Activity+viewpager+fragment,用fragment显示每一步的界面,接受用户数据,用activity汇总数据,用viewpager实现界面切换,然后在最后一步实现和服务器的整体数据交互,这样在一个模块里,我认为这样做是可以的
所以,不是什么情况都适合用一个activity,很多时候,android一个界面就是一个模块,这个时候把不相关的多个模块用一个activity展示,个人认为,不是很合适
一个activity,数据是私有的,在oncreate里初始化,随着activity的销毁而销毁。而如果在activity里有多个View的公有数据,又有通过公有数据的数据传递的话,那什么时候触发初始化,什么时候数据失效就需要自己管理了。
如果你在activity里存放公有数据,只是通过activity来控制显示逻辑,把数据和逻辑都封装在View里,那你这样是用activity做了系统的activity stack的工作,view做了系统activity的工作。
而我认为activity stack控制的导航挺好的,没必要自己控制,比如用户按back键,你用View+activity要多做多少控制。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多