クラスに静的なContext
オブジェクトが含まれている場合、Androidスタジオで警告が表示されるようになりました。これは、メモリリークを引き起こすと言います。しかし、私はこれもアンドロイドのライブラリで行われていることに気づいた。たとえば、LocalBroacastManager
クラスには静的インスタンスがあり、それにはcontext
オブジェクトが含まれています。静的コンテキスト警告
これはメモリリークとしてどの程度悪いですか?
私は、バックグラウンドで実行されるシングルトンジオフェンシングクラスを持っていて、ユーザがジオフェンスにいるかどうかを示すboolean
〜sharedPreferences
を保存します。環境設定を保存するには、context
オブジェクトが必要ですが、メソッドがオーバーライドされたメソッドなので、コンテキストオブジェクトを渡す方法がありません。context
インスタンス変数を使用しないと、どうしてこれを実現できますか?
実際、ほとんどの人は、アプリケーションオブジェクトをシングルトンホルダーとして見つけ出しています。それは静的なものを使用することより利点を与えません。シングルトンを作成するためにスタティックを使用することに問題はありませんが、それはコンテキストを保持するために使用すべきではありません。 –
objetsを静的として保存し、そのようにアクセスすることは、共有状態を持つことを意味します。また、シングルトンパターンで作成された古いシングルトンは継承されず拡張されませんでした。クラスのインスタンスを1つしか必要としない場合は、インスタンスを1つだけ作成し、IoCを使用すると必要な場所で利用できるようにします。私はなぜそれが時代主義であるのか分かりません。アプリケーションクラスは、クラス/依存関係ツリーの中で一重項であり、一番上のクラスです。単純なJavaアプリケーションでmain()メソッドを保持するクラスのようなものですが、ssingleton 。 – SadClown