Android应用程序基于单个活动,多个片段

use*_*884 9 android android-fragments

在iOS中,我可以使用单个UIViewController编写整个应用程序,只需在UIView层次结构中添加整个应用程序.这可以正常工作,因为当内存情况不好时,UIViewController会收到通知,并让开发人员进行一些手动内存管理/优化.

在Android中是否有相同的功能?
我可以在一个活动中编写整个应用程序并在此基础上堆叠片段吗?
据我所知,这会对内存使用产生什么影响,这会绕过活动生命周期管理,整个堆栈片段会留在内存中 - 或者我错了?

Com*_*are 4

Android 中有类似的东西吗?

不是从内存管理的角度来看。没有明确告诉您堆空间较低。使用诸如此类的东西SoftReference会有所帮助,但这更多是在虚拟机级别。

我可以在单个活动中编写整个应用程序并在此之上堆叠片段吗?

如果你愿意的话,是的。

据我了解,这会对内存使用产生什么影响,这绕过了活动生命周期管理,并且整个片段堆栈将保留在内存中 - 还是我错了?

“整个片段堆栈”都将位于内存中,无论它们是由 1 个活动还是由 N 个活动托管。

  • @user204884:如果您手动“finish()”活动,或者用户按下“BACK”(并且您允许正常的“BACK”按钮处理),或者进程终止,则活动只会留下内存。因此,默认情况下,拥有 1 个活动与拥有 N 个活动可以具有相同的片段内存占用量。拥有 N 个活动*可以*具有较低的内存占用量,但这并不能保证。我很抱歉在我的回答中没有说得更清楚。 (3认同)