Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android操作系统决定调用gc的策略是什么? 公共静态类GoBack{ 公共静态堆栈goBackStack; }_Java_Android_Garbage Collection - Fatal编程技术网

Java android操作系统决定调用gc的策略是什么? 公共静态类GoBack{ 公共静态堆栈goBackStack; }

Java android操作系统决定调用gc的策略是什么? 公共静态类GoBack{ 公共静态堆栈goBackStack; },java,android,garbage-collection,Java,Android,Garbage Collection,在我的android应用程序中,我编写了一个父类为应用程序的类,我声明了一个内部类,如上面的代码所示 我的问题是,在我的应用程序在后台运行了很长一段时间,然后返回到应用程序后,goBackStack始终为空。我不知道为什么?我如何避免它?问题是,您的整个进程最终会被终止。垃圾收集器不会收集静态引用的对象 查看重新初始化数据或使用SavedInstanceState上的来保存数据。或者,您可以查看使用数据库或SharedReferences来保存数据。当Android决定终止您的应用程序时,您的g

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


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

问题是,您的整个进程最终会被终止。垃圾收集器不会收集静态引用的对象


查看重新初始化数据或使用SavedInstanceState上的
来保存数据。或者,您可以查看使用数据库或
SharedReferences来保存数据。

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


解决方案很简单-不要考虑静态变量,因为它们是持久性存储。它们不是。使用
SharedReferences
SQLite
数据库或文件系统。只要在阅读基础知识之前不要开发应用程序,问题就会消失:)goBackStack是公开可用的。请检查它是否未被修改ed to null我确定goBackStack没有修改为null。谢谢你的建议。我在使用它时通过检查它是否为null来处理它。如果为null,则我将再次初始化它。因为整个应用程序已被终止。那么如何调用SavedInstanceState上的函数?
public static class GoBack {
    public static Stack<Bundle> goBackStack;
}