android - 如果将 Activity 数据保存在静态类中,如何在重新创建 Activity 时处理 Activity 数据

标签 android android-lifecycle

关于 Android Activity 生命周期,有一件事我不明白。当 Activity 被重新创建时(例如当我旋转屏幕时)它的所有实例都被销毁所以我必须小心存储我需要保留的数据。 但是,如果我有一个静态类,其中填充了数据,并且可以从此 Activity 进行访问,会发生什么情况。当 Activity 被销毁时,这些数据是否会丢失?由于该类是静态的,因此无需对其进行实例化。

最佳答案

确实,静态数据类不会被重新创建或销毁。你应该绝对避免的是在你的 Activity 中的内部静态类中声明你的数据。这将导致内存泄漏,因为静态类将保留对您的 Activity 的引用,因此垃圾收集器将无法清理内存中的旧 Activity ,这将导致每次轮换应用程序时堆都会增长。但是如果你的静态类在你的 Activity 之外,那应该没问题!

Here你会发现一个关于安卓内存管理的有值(value)的视频。即使它有点过时,它也会帮助您了解垃圾收集器在 Android 中的工作原理!

关于android - 如果将 Activity 数据保存在静态类中,如何在重新创建 Activity 时处理 Activity 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25307966/

相关文章:

java - 在 asp.net (c#) 和 android (java) 中共享业务逻辑

android - flutter 中 TabView 的动态子项

java - 停止将十进制转换为 ascii

java - 为什么此后台任务会因致命异常而失败?

android - 当应用程序移动到后台时,android 会清除 View 中的数据吗?

android - IllegalStateException onSaveInstanceState 显示 DialogFragment 后无法执行此操作

java - 使用无线时减少功耗

android - 屏幕锁定时当前 Activity 消失

android - 正确使用 Activity 生命周期事件

android - 需要权限的生命周期感知组件