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