我注意到我正在分析的应用中有一种奇怪的行为,我想知道这是设计还是平台的错误?
我有一个复杂的应用程序,但是为了简化我的示例,我可以说我有一个活动A和B的应用程序。现在,如果我运行我的应用程序并从A - > B,鉴于我没有完成活动A,那么我将终止该过程(但应用程序窗口仍然在最近的应用程序中可见)然后如果我点击最近的应用程序中的窗口将会发生什么:
1)正在创建流程 2)正在创建应用程序对象 3)堆栈被解除(A - > B)并且在通过框架分析之后,重新创建活动B. 4)活动A是"死"直到我按下后退按钮
现在有趣的事情发生了,如果我介绍一个大的单例实例,让我们说一个实例" Dictionary"它可以容纳许多键值对。如果该字典实例足够大,则不会发生上述情况,这意味着堆栈似乎被清除,我的应用程序将遵循典型的启动方案,因此正在创建活动A而不是活动B.
这是Android Framework的正确行为吗?如果是这样......为什么这是正确的?我对发生这种情况的原因和原因感兴趣。