安卓操作系统确定调用gc的策略是什么?


public static class GoBack {
    public static Stack<Bundle> goBackStack;
}

在我的安卓应用程序中,我编写了一个父类是应用程序,我声明了一个内部类作为上面的代码。

我的

问题是,我的应用程序在backgroud中运行了很长时间然后回到应用程序后,goBackStack总是为空。我不知道为什么?我怎样才能避免它?

你的goBackStack会很快变为空,因为Android决定杀死你的应用程序。由于此变量是在其他地方初始化的,因此在重新启动应用后它仍然是 null(因为它不会在第二次初始化)。

解决方案很简单 - 不要考虑静态变量,因为它们是持久存储。他们不是。请改用SharedPreferencesSQLite数据库或文件系统。

问题是你的整个过程最终会被杀死。垃圾回收器不会收集静态引用的对象。

查看重新初始化数据或使用onSavedInstanceState。或者,可以考虑使用数据库或SharedPreferences来保存数据。

最新更新