gpt4 book ai didi

java - Android - 如果内部类是服务,GC 会收集我的外部类吗?

转载 作者:行者123 更新时间:2023-12-02 02:33:40 26 4
gpt4 key购买 nike

我目前正在开发一个 Android 应用程序,它有一个“服务助手”类,这样我就可以定位多个 API,而不必每次使用服务时都编写“API 选择器”代码。

结构是

  • 外部类不是服务(扩展对象)
  • 内部类 #1 派生自 JobService,并面向 API 21+
  • 内部类 #2 派生自 IntentService,面向较低的 API 级别

外部类负责保存服务所需的数据并调度服务。问题是:如果创建外部类实例的 Activity 在服务启动时被销毁,GC 会收集外部类吗? (除了 OuterClass.this 之外,我没有在任何内部类中保留对它的引用)

最佳答案

如果任何东西引用了外部类,那么它就不能被垃圾收集。

内部类持有对外部类的引用,因此如果任何东西具有对内部类的引用,那么它们就间接持有对外部类的引用,并且它不能被垃圾收集。

关于java - Android - 如果内部类是服务,GC 会收集我的外部类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46719942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com