我正在處理由其他人編寫的現有Android代碼,它有幾個內存問題。我無法理解的一個問題是這個。在主Activity類中,它有一個名爲getReference()的靜態方法。 此方法基本上返回對稱爲mThis的變量的引用。現在,在的onCreate方法有靜態參考的活動
class MyActivity extends Activity
{
private static MyActivity mThis;
public MyActivity getReference(){
return mThis;
}
public onCreate(Bundle savedInstanceState){
mThis = this;
}
...
}
現在,在內容提供商或從Dialog類的繼承類,它使用這種靜態方法來獲取參考上下文。
我敢肯定,這是不正確的,是內存泄漏的原因之一。但是有沒有一種方法可以獲得當前的上下文,而不需要在每個類中傳遞上下文對象。有一個應用程序上下文,但我不認爲它有任何方法來獲取當前上下文。
我可以刪除此方法,然後將對上下文對象的引用傳遞給這些類。但有沒有其他方法可以解決這個問題。
靜態引用始終指向最後創建的活動,它如何泄漏內存? – auval 2012-08-15 08:42:30