2011-12-17 58 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