System.gc将在android(Andengine)中工作

时间:2011-12-17 06:25:10

标签: java android garbage-collection andengine

我使用andengine开发游戏。在退出时的J2me游戏中,我将所有对象都设为null

即:

Image img;
Sprite s1;

When exit application , 

img=null;
s1=null;

在android中我将使用System.gc()或者我需要在退出应用时将所有纹理,textureRegion和sprite设为make为null?

3 个答案:

答案 0 :(得分:5)

我认为你不应该明确地致电System.gc()。 Android操作系统可以解决这个问题。

“从您的应用中拨打System.gc()就像从您的家中提供电力连接,点亮您整个社会的灯光”

我的意思是它减慢了你的应用程序以清理系统的所有垃圾.......

N_JOY。

答案 1 :(得分:2)

Java垃圾收集应该处理这个问题。你不需要这样做。

但是我会关闭打开的连接,文件句柄等。

System.gc()只是提示JVM建议使用垃圾收集,但Java会自行运行它。

答案 2 :(得分:0)

Android中存在垃圾收集器时,手动调用GC绝不是一个好习惯。 GC围绕启发式算法进行组织,这些算法在放置到自己的设备时效果最佳。手动调用GC通常会降低性能。

偶尔,在一些相对罕见的情况下,人们可能会发现某个特定的GC出错了,然后手动调用GC可以改善性能。这是因为实际上不可能实现“完美”的GC,它将在所有情况下以最佳方式管理内存。这种情况很难预测,并取决于许多微妙的实施细节。 “良好实践”是让GC独立运行;手动调用GC是一个例外情况,只有在实际出现性能问题后才能设想。

最好花更多精力避免不必要的对象创建(比如在循环中创建对象)。

查看问题Garbage collector in Android