我应该用片段替换Android活动吗?

时间:2015-04-01 14:10:48

标签: android performance android-fragments android-activity

我有一个大型的Android游戏,其中每个逻辑屏幕都有一个Activity。 (启动画面,开始画面,关卡选择器,游戏画面和设置是不同的活动)。 现在一切都很好。

如果我重写所有内容以便只有一个活动且逻辑屏幕是片段,那么它会减少RAM或CPU消耗吗?

4 个答案:

答案 0 :(得分:3)

多年(两个+)说“碎片是要走的路”,我再也不会用Fragments替换活动了。

使用片段重新使用某些组件很好。使用片段进行对话也很好,但我现在已经意识到片段实现有多糟糕,Fragment生命周期有多糟糕以及FragmentManager在某些情况下往往是多么不可预测(和错误)。继续花一些时间谷歌搜索你会发现所有“边缘但不是那么优势”的案例,必须实施黑客攻击“设计”的错误行为。

有时您必须从Android源代码扩展或复制这些类的源代码,以修改私有或受保护的字段...

不要误会我的意思,片段有效。但它们不是解决所有问题的方法(它们可能是中长期内新问题的来源)。如果您已经有活动,那就享受吧!事实上,带有共享元素的新过渡框架清楚地表明Google希望您使用更多活动;)

这是我在大约六个中型大型Android项目中工作后的个人意见(有些很受欢迎,你可能已经使用过它们了!);)

答案 1 :(得分:2)

据我所知,没有,碎片(接近)对RAM或CPU没有影响。

活动包含某些元素并执行某些功能。 Fragment被加载到一种基本Activity上,就像一个只有ActionBar的Activity。其余部分由片段填补。

同时退房:

android - need some clarifications of fragments vs activities and views

Activity or Fragment which is better way to use for performance and reliable?

答案 2 :(得分:0)

不,它可能会增加它(因为你会有更多的课程),但只是略有增加。

使用碎片的好处是拥有可重复使用的“块”,您可以根据需要移动它们。例如,对于特定活动,您可以拥有一个布局,其中您在屏幕上显示主窗口并单击某个项目会创建包含一些详细信息的新活动。使用片段,您可以为平板电脑创建一个布局,其中主窗口仅占用屏幕的一半,其余部分用于细节片段,无需重写所有内容。

答案 3 :(得分:0)

片段给我的主要好处是简单的数据共享。在两个活动之间,数据必须以相对原始的类型传递... string,int,arrayList等。 但是,在片段和活动之间,数据可以在复杂的类中来回传递。