嗨,我们在我们的 android 应用程序中遇到了一个奇怪的问题。在我们的应用程序中,当我们启动应用程序(第一个活动)时,我们将所有需要的对象/数据存储在一个公共对象(称为对象 A)中。我们将上下文本身存储在该对象中。每当我们在应用程序中需要上下文时,我们都会从对象 A 获取上下文并使用它。除以下情况外,所有情况都可以正常工作。
i) 当我们的应用程序在后台运行时,我们玩了一些高端游戏。现在我们通过最小化屏幕(最近的应用程序)回到应用程序。突然应用程序崩溃了。
ii)如果我们通过设置强制停止应用程序,并通过最小化屏幕返回应用程序,则会发生相同的崩溃。
在这两种情况下,对象 A 都变为 null(它可能会被 GC 删除),因此所有依赖于对象 A 的操作都会出现异常。
为什么会这样?我们如何防止GC收集对象A?我们如何处理强制停止?请给出任何想法。