java - android os 决定调用 gc 的策略是什么?

标签 java android garbage-collection

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

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

我的问题是,我的应用程序在后台运行很长时间然后返回应用程序后,goBackStack 始终为 null 。我不知道为什么?我怎样才能避免它?

最佳答案

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

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

关于java - android os 决定调用 gc 的策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11952462/

相关文章:

java - 为什么 G1GC 在开始混合收集之前收缩年轻代?

java - 与 SQLite 交互时出现 ANR

java - 我被 spring.config、persistence.xml 和 pom 文件的不同组合所困扰

java - 处理RxJava即时搜索时中断异常

java - 三星 Galaxy S3 中缩放位图失败

安卓定位问题

android - 如何在 materialbutton 中定位图标位置

android - 没有可用的互联网连接时如何添加自定义错误页面

c# - 是真的-垃圾收集器不会收集结构类型的对象

java - 是否可以更改垃圾收集器线程的优先级?