在某些情况下重建流程时是否清除了活动堆栈?

时间:2016-02-12 14:03:59

标签: android android-activity process stack

我注意到我正在分析的应用中有一种奇怪的行为,我想知道这是设计还是平台的错误?

我有一个复杂的应用程序,但是为了简化我的示例,我可以说我有一个活动A和B的应用程序。现在,如果我运行我的应用程序并从A - > B,鉴于我没有完成活动A,那么我将终止该过程(但应用程序窗口仍然在最近的应用程序中可见)然后如果我点击最近的应用程序中的窗口将会发生什么:

1)正在创建流程 2)正在创建应用程序对象 3)堆栈被解除(A - > B)并且在通过框架分析之后,重新创建活动B. 4)活动A是"死"直到我按下后退按钮

现在有趣的事情发生了,如果我介绍一个大的单例实例,让我们说一个实例" Dictionary"它可以容纳许多键值对。如果该字典实例足够大,则不会发生上述情况,这意味着堆栈似乎被清除,我的应用程序将遵循典型的启动方案,因此正在创建活动A而不是活动B.

这是Android Framework的正确行为吗?如果是这样......为什么这是正确的?我对发生这种情况的原因和原因感兴趣。

0 个答案:

没有答案