2011-12-17 57 views
0

我使用andengine開發遊戲。在J2ME中游戲時退出,我所做的所有對象爲空System.gc將工作在Android(Andengine)

即:

Image img; 
Sprite s1; 

When exit application , 

img=null; 
s1=null; 

在Android中,我將使用的System.gc()或者我需要讓所有的紋理,textureRegion和精靈爲使爲空,當退出appliaction?

+1

您不應該在退出時執行任何操作。 – 2011-12-17 06:26:35

回答

2

Java垃圾收集應該照顧到這一點。你不需要那樣做。

不過,我將關閉打開的連接,文件句柄等。

System.gc()只是一個提示,垃圾收集建議的JVM,但是,Java在其自己的意願運行它。

0

Android中存在垃圾回收器,手動調用GC永遠不是好習慣。 GC是圍繞啓發式算法組織的,當啓用算法離開自己的設備時,該算法效果最佳。手動調用GC通常會降低性能。

偶爾,在一些比較罕見的情況下,人們可能會發現特定的GC出錯了,然後手動調用GC可能會改善性能。這是因爲不可能實現一個「完美」的GC,它將在所有情況下優化管理內存。這種情況很難預測,並取決於許多細微的實施細節。 「好的做法」是讓GC自行運行;對GC的手動呼叫是例外情況,只有在實際性能問題得到適當證實後才能設想。

它不如花更多的精力在避免對象(如創建循環中的對象)的不必要的創作..

看問題Garbage collector in Android

5

我想你不應該叫System.gc()明確。 Android操作系統會照顧到這一點。

「從你的應用程序中調用System.gc()就像是從您的家提供電力連接來點亮你的完整的社會的燈」

我的意思是它會減慢你的應用程序來清潔系統的所有garbages ... ...

N_JOY。

+1

謝謝,得到了清除的主意..例子 – JohnRaja 2011-12-17 06:51:14