2017-05-06 15 views
0

BottomNavigationViewを含むMainActivityの静的インスタンスを作成しようとしていますが、これは常に警告を出しています。静的フィールドにアンドロイドコンテキストクラスを配置するとメモリリークが発生することがわかりますが、BottomNavigationViewを使用している場合にのみこの警告が表示されます。この警告がBottomNavigationViewなしで表示されない理由と、この警告を取り除く最も良い方法は何か分かりません。BottomNavigationViewを含むMainActivityの静的インスタンスを作成する

警告メッセージ:

は、静的フィールドに( BottomNavigationViewを指すフィールドbottomNavがありMainActivityに静的 参照)をAndroidのコンテキスト・クラスを置かないでください。これは私のコードのメモリリークである(とも インスタントランを破る)

public class MainActivity extends AppCompatActivity { 
    BottomNavigationView bottomNav; 
    ImageView rootIndicator; 
    ... 
    ... 
} 

public class Utils { 
    public static MainActivity activity; 
    ... 
    ... 
} 

答えて

0

あなたは今まであなたが活動への静的参照を保存することを考えているような状況で自分自身を見つける場合あなたは今のように、あなたがそれを決してしてはいけないので、あなたのデザイン全体を再考し、将来的にはさらに多くの問題を引き起こします。

あなたがしようとしていることを教えていただければ、より良い方法でお手伝いできる場合があります。

+0

提案をいただきありがとうございますが、私はこれを解決するための他の方法を見つけることができませんでした。実際には、静的メソッドを作成して、** PackageManager **クラスを使用してインストールされたアプリケーションについての情報を取得し、** PackageManager **クラスのアクティビティコンテキストを必要とするので、MainActivityコンテキストを静的参照として保存する必要があります。これを処理する別の方法がある場合は、私に教えてください。 –

関連する問題