这取决于您正在创建的应用程序。我已经使用这两种方法创建了几个应用程序,并且不能说一种方法总是比另一种更好。我创建的最新应用程序使用单一Activity
方法和 Facebook 样式导航。从导航列表中选择项目时,我会更新一个Fragment
容器以显示该部分。
也就是说,拥有一个单曲Activity
也会带来很多复杂性。假设您有一个编辑表单,对于用户需要选择或创建的某些项目,需要他们转到新屏幕。对于活动,我们只是调用新屏幕,startActivityForResult
但Fragments
没有这样的东西,因此您最终将值存储在 上Activity
并让主编辑片段检查Activity
数据是否已被选择并应显示给用户。
Aravind 所说的坚持单一Activity
类型也是正确的,但并不是真正的限制。您的活动将是 FragmentActivity,只要您不需要,MapView
那么就没有真正的限制。如果您确实想显示地图,可以这样做,但您需要修改 Android 兼容性库以FragmentActivity
扩展MapActivity
或使用公开可用的android-support-v4-googlemaps。
最终,我认识的大多数走一条Activity
路线的开发人员都回到了多个活动来简化他们的代码。明智的用户界面,在平板电脑上,你有时会被困在使用单个Activity
只是为了实现你的设计师想出的疯狂交互:)
- 编辑 -
Google 终于发布MapFragment
了兼容性库,因此您不再需要使用 android-support-v4-googlemaps hack。在此处阅读更新:Google Maps Android API v2
-- 编辑 2 --
我刚刚阅读了这篇关于现代(2017 年)片段状态的精彩文章,并记住了这个旧答案。想我会分享:片段:Android所有问题的解决方案