2017-05-06 45 views
0

我想創建一個包含BottomNavigationView的MainActivity的靜態實例,但這總是給出警告。我知道將android上下文類置於靜態字段會導致內存泄漏,但只有在使用BottomNavigationView時纔會收到此警告。我不明白爲什麼這個警告沒有BottomNavigationView沒有顯示,什麼是最好的方法來消除此警告?創建包含BottomNavigationView的MainActivity的靜態實例

警告消息:

不要放置在靜態字段的Android上下文類(靜態 參照MainActivity具有字段bottomNav指向 BottomNavigationView);這是一個內存泄漏(和也打破 即時運行)

我的代碼:

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

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

回答

0

如果你發現自己在你想保存的靜態引用的活動的情況就像你現在一樣,然後重新考慮你的整個設計,因爲你永遠不應該這樣做,它只會在將來造成更多的問題。

如果您告訴我們您要做什麼,我們可能會以更好的方式幫助您。

+0

感謝您的建議,但我找不到任何其他方式來解決這個問題。實際上,我創建了一個靜態方法來獲取使用** PackageManager **類的已安裝應用程序的一些信息,並使用** PackageManager **類活動上下文是必需的,所以我通過將MainActivity上下文保存爲靜態引用來傳遞它。如果有另一種方式來處理這個問題,請讓我知道。 –