所以,我正在製作一個應用程序,它在主類/活動中有一個處理程序。 我得到了警告,我應該聲明它是靜態的,以防止內存泄漏。
因此,我閱讀了一些解釋問題的文章,並且我知道理解它(並將處理程序更改爲靜態並使用弱引用)。從靜態方法更改非靜態值
但是,這裏來了我的問題:
我需要處理程序來更改某些非靜態變量(或調用一個方法)。我不想聲明這些變量是靜態的,因爲它沒有多大意義(它們應該屬於主類的實例,而不屬於類本身)。
我該怎麼做?
我已經看到一段代碼,其中有人創建了一個主類的實例,然後用它來改變非靜態變量的值或調用非靜態方法。 對我來說這似乎很奇怪,因爲當創建新實例並使用該實例中的變量時,我的程序如何知道我正在討論與我之前在程序中相同的「myInt」或「myString」。
原諒我,如果這是沒有意義的,或者如果我沒有解釋得很好,我還是福利局
你需要一個'接口'。您的處理程序實現了一種更新方法,通知消費者何時發生了有趣的事消費者(類實例)實現相同的接口並在發生事件時接收回調。就像一個'onClickListener',但定義你的方式。 http://stackoverflow.com/questions/14660671/how-to-notify-an-activity-when-globalvariables-are-changed/14660808#14660808 – Simon 2013-04-23 18:36:37