5

我有一个包含很多活动的应用程序。其中许多活动可以启动其他活动,因此用户期望生成相当大的活​​动堆栈。

我目前正在使用默认的活动启动行为。有人知道,如果大型活动堆栈(如 > 100)会造成问题吗?这有限制吗?它会降低性能,导致 ANR 对话,还是类似的事情?

谢谢

4

2 回答 2

2

对于这个问题,Mayra 的推理是错误的。Android 会从堆栈中杀死活动,只要它们是来自当前运行的不同应用程序的活动。

因此,如果您的应用程序打开了 100 个活动,则这 100 个将保​​留在堆栈中,并且您很可能会发现 OutOfMemoryError。

尝试以不同的方式构建您的应用程序。

于 2013-03-04T11:17:39.667 回答
2

当需要释放内存或其他资源时,Android 会终止活动。根据Activity Lifecycle,一旦不再可见,Activity 就有资格被杀死。

假设您正确处理了活动的终止和重新启动,您应该没问题。

顺便说一句,我很难从用户的角度想出一个用例,我可以在一个应用程序中访问超过 100 个活动......

于 2011-01-25T19:52:51.433 回答