首先说一下结构,你之前说用一个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要多做多少控制。 |
|
来自: gearss > 《安卓编程-java》