我正在编写一个同时具有 Activity 和 Service 组件的 Android 应用程序。此外,我有一个类封装了我在 Activity 和 Service 的多个地方共享的资源。我的问题是如何确定何时释放资源。据我了解,Java 没有析构函数的概念,因此我不能只在共享对象中创建析构函数,当不再引用该对象时将调用该析构函数。Android 具有诸如用于 Activity 的 onPause 和用于服务的 onDestroy 之类的函数,尽管从技术上讲,不能保证在所有可能的关闭情况下都会调用这些函数中的任何一个(例如,低内存杀手不会调用这些函数)。而且无论如何,
由于 Java 没有析构函数,一些消息来源说要创建自己的“close()”类型函数并手动调用它。但似乎要让它工作,我必须维护自己的引用计数方案,考虑到 Java 已经有了 GC,这应该消除对这种方案的需要,这似乎很奇怪。
这里的正确解决方案是什么?