1

在我的应用程序中,我有大约十几个活动。但是,其中大多数都有一些快捷按钮,因此用户可以从应用程序的任何位置启动最重要的按钮。这意味着,用户可以在应用程序中跳转,用活动填充活动堆栈。我无法改变这种行为,因为我需要堆栈提供的历史功能(所以我不能只使用 noHistory 选项)。

显然,我想对这种可能的内存泄漏做点什么。如果堆栈的大小大于某个数字,是否可以从活动堆栈底部删除条目?所以栈只记得最新的X(比如30)个Activity?

谢谢

4

2 回答 2

3

显然,我想对这种可能的内存泄漏做点什么。

什么可能的内存泄漏?Android 会根据需要销毁活动以回收内存。如果用户通过 BACK 按钮进入一个已销毁的 Android,则该 Activity 将使用其原始重新创建,Intent并通过您填写的 Bundle 传递onSaveInstanceState()

如果堆栈的大小大于某个数字,是否可以从活动堆栈底部删除条目?所以栈只记得最新的X(比如30)个Activity?

不是我知道的。同样,你不应该需要它。

于 2011-02-20T00:54:32.580 回答
1

History Stack 将由 Android Runtime 管理;你不必担心。

但是,如果您之前启动了一项活动并希望将其置于最前面,您可以通过设置适当的Intent 标志(如 ACTIVITY_FLAG_REORDER_TO_FRONT)来实现。这样一来,您就不会在不需要时在堆栈上有重复的活动。请注意,这将影响历史的年表/线性性质。

于 2011-02-20T05:50:01.417 回答