public static class GoBack {
public static Stack<Bundle> goBackStack;
}
在我的安卓应用程序中,我编写了一个父类是应用程序,我声明了一个内部类作为上面的代码。
我的问题是,我的应用程序在backgroud中运行了很长时间然后回到应用程序后,goBackStack总是为空。我不知道为什么?我怎样才能避免它?
你的goBackStack
会很快变为空,因为Android决定杀死你的应用程序。由于此变量是在其他地方初始化的,因此在重新启动应用后它仍然是 null(因为它不会在第二次初始化)。
解决方案很简单 - 不要考虑静态变量,因为它们是持久存储。他们不是。请改用SharedPreferences
、SQLite
数据库或文件系统。
问题是你的整个过程最终会被杀死。垃圾回收器不会收集静态引用的对象。
查看重新初始化数据或使用onSavedInstanceState
。或者,可以考虑使用数据库或SharedPreferences
来保存数据。