これは私のコードではありません。このサイトに到着したばかりで、コードレビューを行っています。
Dialogの拡張であるクラスがあります。シングルトンとして定義されています。
最初の呼び出しで、コンテキストはgetInstanceメソッドに渡されます。受信したコンテキストをコンストラクター内の「スーパー」に渡すクラスをインスタンス化します。次に、それを保存します-他のシングルトンと同じです。
次に、ダイアログが表示されます。ユーザーとの対話後、新しいアクティビティを開始し、「closeDialog」を介してダイアログを閉じます。
ただし、インスタンスの静的ホルダーはまだ存在しているため、まだ生きています。これは、それを作成した(そして、インスタンスの作成時に「getInstance」呼び出しで「super()」に渡された)アクティビティを保持しますか?
インスタンスを他の場所からの呼び出しに使用し、引き継ぐ必要のある値を持っているため、インスタンスは存続します。
私はこのコードが悪臭を放つことを知っていますが、それを再書き込みする(または自分で再書き込みする-より可能性が高い)前に、メモリ(最初のアクティビティ)がリークすることを確認したいと思います。