J2ME中Form的記憶體洩露

2021-09-30 03:26:19 字數 464 閱讀 3212

改別人**是件很痛苦的事情,但是工作中在所難免。今天碰到了很棘手的問題——有乙個類的物件無論如何不能被**,當然這是在排查了半天記憶體溢位之後得出的結論。

還好模擬器忠實的反映了這個問題——假設建立了乙個包含兩個textfield的form之後,那麼這個form將永遠存在,哪怕沒有任何引用,好在只會存在乙個。問題的根由就是把那個包含很多資源的類作為那個form的commandlistener之後,因為form不會被**,當然那個類就不會被**了。從網上搜尋的結果來看,有些人已經發現了commandlistener不能**的問題,但是卻沒有想到是form不能**的問題——放兩個textfield會不能**,但是放乙個就可能能**(有時也不能),放stringitem能**。下面是乙個簡單的測試程式,從wtk的記憶體物件監視器能看到結果:

問題的解決就是繞開這個**問題,顯式的將那個form的commandlistener置空,雖然那個form不會被**,好在消耗的記憶體並不多。

j2me記憶體優化

out momory 一陣天旋地轉記憶體又溢位了。在手機上這種痛苦經常都有,套一句俗話在手機上用記憶體必須勒緊褲腰帶。雖然現在pc記憶體上g都不奇怪,可是在手機上卻只能以k來記,可能某位同志會馬上跳出來說也有上m的,記住中國還不富大多數手機都是低端手機。寫手機程式讓我彷彿回到了dos時代 自我安慰一...

J2ME中的分而治之

這兩天在研究j2me中setclip的用法.兩張切換時,如果是新的從內向外以矩形顯示,可以使用一次setclip設定繪製的矩形區域.但是,現在反回來,從外向內,以矩形框顯示,但是j2me裡面沒有這樣的方法,怎麼辦?有了,咱們給他來個分而治之,一次setclip不行,咱們可以分多次嘛.就現在的情況,可...

J2ME中的記憶體洩漏 雙快取

雙緩衝就是在記憶體中開闢乙個新的空間,你可以在上面繪製,然後一起繪製到手機螢幕上。採用雙緩衝最大的好處是可以提高繪製速度,缺點是消耗記憶體。建立雙緩出的例子 image dimage image.createimage width,height 建立一張指定大小的 graphics dg dimag...