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

在我的 android 应用程序中,我编写了一个父类为 Application 的类,我声明了一个内部类,如上面的代码。

我的问题是,在我的应用程序在后台运行了很长时间然后回到应用程序后,goBackStack 始终为空。我不知道为什么?我该如何避免呢?

4

2 回答 2

1

goBackStack当 Android 决定终止您的应用程序时,您将立即变为 null。由于此变量在其他地方初始化,因此在重新启动您的应用程序后它仍然为空(因为它没有在第二次初始化)。

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

于 2012-08-14T12:49:51.323 回答
0

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

查看重新初始化您的数据或使用onSavedInstanceState. 或者,您可以考虑使用数据库或SharedPreferences持久化数据。

于 2012-08-14T12:49:38.367 回答