我已经为Android开发了一些应用程序,这个问题总是存在:
我应该如何构建我的UI?我应该在活动后启动活动并离开手机来制作"后退"按钮,还是应该选择更优化但实施更复杂的方式,手动切换视图然后手动执行"后退"按钮功能?
您认为(或知道)更好的做法是什么?
Dan*_*Lew 98
我会说多个活动几乎总是更有意义.我不认为Android是专为不断切换自己的视图而设计的 - 你错过了这么多.你必须自己实现Back,你没有得到任何inter-Activity转换,你必须实现许多内部逻辑来恢复正确状态的应用程序.如果不将应用程序划分为"活动",则以后更改应用程序的流程会变得更加困难.它还导致一个mega-Activity比很多较小的代码要难得多.
我无法想象速度确实是一个问题; 如果它是,那么你初始化每个Activity的方式有问题.例如,我曾经尝试在Activities之间传递Serializable对象,这被证明是非常慢的; 当我切换到更快的传递对象的方法时,启动活动的速度极大地增加.
此外,我认为它告诉Android的活动和任务设计指南根本没有提到切换视图; 它以Activity-as-View设计为中心.
sat*_*ine 21
我想指出一些实例,当一个活动可能更好地设计一个具有多个全屏视图的Android应用程序时:
如果应用程序屏幕紧密耦合并共享一个它们都在运行的公共对象.在这种情况下,传递Object可能需要Bundle并且可能容易出错,因为它会有副本.一个很好的例子可能是一个向导.是的,您可以使用静态访问公共对象,但静态在Android中可能是危险的(想想配置更改!)
如果你想在屏幕之间有一些非常酷的动画.也许你想要一只鸟在一个屏幕上起飞并降落在另一个屏幕上.当每个屏幕都是活动时尝试这样做!
另一方面,如果您的某个屏幕被设计为由任意数量的其他应用程序显示,那么该屏幕应该是它自己的活动.
更新2014年3月:
此时,问题现在应该包括片段的选择.我认为视图可能是3:Activity,Fragment,View中最不可能的选择.如果你想实现使用后退按钮的屏幕,那么它应该是Activties或Fragments,因为它们本身都处理后退按钮.需要将片段添加到FragmentManager后台堆栈以使后退按钮起作用.管理片段,对话框和后台堆栈虽然有点烦人!
更新于2018年9月:
Google的一些开发人员正在推荐使用新导航架构组件的单一活动应用.
Eri*_*ass 11
另请注意,使用多个应用程序实现您的应用程序Activities将为用户提供整体平台更一致的体验.部分体验将通过使用内置的Google应用程序来塑造,因此如果用户的行为与手机上已安装的应用程序类似,则用户可能会更轻松地使用您的应用程序.
| 归档时间: |
|
| 查看次数: |
60311 次 |
| 最近记录: |