我有一个包含很多活动的应用程序。其中许多活动可以启动其他活动,因此用户期望生成相当大的活动堆栈。
我目前正在使用默认的活动启动行为。有人知道,如果大型活动堆栈(如 > 100)会造成问题吗?这有限制吗?它会降低性能,导致 ANR 对话,还是类似的事情?
谢谢
我有一个包含很多活动的应用程序。其中许多活动可以启动其他活动,因此用户期望生成相当大的活动堆栈。
我目前正在使用默认的活动启动行为。有人知道,如果大型活动堆栈(如 > 100)会造成问题吗?这有限制吗?它会降低性能,导致 ANR 对话,还是类似的事情?
谢谢
对于这个问题,Mayra 的推理是错误的。Android 会从堆栈中杀死活动,只要它们是来自当前运行的不同应用程序的活动。
因此,如果您的应用程序打开了 100 个活动,则这 100 个将保留在堆栈中,并且您很可能会发现 OutOfMemoryError。
尝试以不同的方式构建您的应用程序。
当需要释放内存或其他资源时,Android 会终止活动。根据Activity Lifecycle,一旦不再可见,Activity 就有资格被杀死。
假设您正确处理了活动的终止和重新启动,您应该没问题。
顺便说一句,我很难从用户的角度想出一个用例,我可以在一个应用程序中访问超过 100 个活动......