Activity コンポーネントと Service コンポーネントの両方を持つ Android アプリを作成しています。さらに、アクティビティとサービスの両方でいくつかの場所で共有しているリソースをカプセル化するクラスがあります。私の質問は、リソースをいつ解放するかをどのように把握できるかです。私が理解しているように、Javaにはデストラクタの概念がないため、オブジェクトへの参照がなくなったときに呼び出される共有オブジェクトにデストラクタを作成することはできません。Android には、アクティビティ用の onPause やサービス用の onDestroy などの関数がありますが、技術的には、これらの関数のいずれかがすべての可能なシャットダウン状況で呼び出されるという保証はありません (たとえば、低メモリ キラーはこれらの関数を呼び出さないなど)。そしていずれにせよ、
Javaにはデストラクタがないため、独自の「close()」タイプの関数を作成して手動で呼び出すという情報源もあります。しかし、これが機能するには、独自の参照カウント方式を維持する必要があるように思われます。これは、Java がそのような方式の必要性を排除する GC を既に持っていることを考えると、かなり奇妙に思えます。
ここで適切な解決策は何ですか?