基于单一活动、多个片段的Android应用程序

9
在iOS中,我可以使用单个UIViewController编写整个应用程序,并在UIView层次结构中添加整个应用程序。这样做是可行的,因为当内存不足时,UIViewController会收到通知并允许开发人员进行一些手动内存管理/优化。
在Android中是否有类似的方式?
我能否在单个activity中编写整个应用程序并在其上堆叠片段?
这对内存使用有什么影响,因为据我所知,这种方式避开了活动生命周期管理,整个片段堆栈将保留在内存中,或者我错了吗?
1个回答

4
有没有Android的相应内容?
从内存管理角度来看,没有。您不会明确地被告知低堆空间。使用SoftReference之类的东西可以帮助,但这更多地涉及到虚拟机层面。
我能在一个活动中编写整个应用程序并在其上堆叠片段吗?
如果你愿意,可以。
对于内存使用情况,这会产生什么影响?据我所知,这会规避活动生命周期管理,并且整个片段堆栈将保留在内存中,或者我错了?
无论它们是由1个活动还是N个活动托管,“整个片段堆栈”都将保留在内存中。

1
如果它们由N个活动托管,那么它们将成为活动生命周期管理的一部分。如果它们都在一个视图中,这是否意味着单个活动始终在内存中,并且所有片段都可见,因为它是唯一可见的? - user204884
3
如果你手动调用finish()方法,或用户按下"返回"键(并允许正常的"返回"键处理),或进程被终止,那么活动才会留下记忆。因此,默认情况下,与片段相关的内存占用方面,有1个活动和N个活动是可以具有相同的内存占用量的。虽然N个活动可能会具有较低的内存占用率,但并不能保证。对于我的回答没有更清晰的表述,我向您道歉。 - CommonsWare
1
@CommonsWare 我接受你的答案,但是如何一次性删除所有片段以及持有它们的活动以清除内存。这样做会立即清除内存还是需要一些时间。 - TNR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接