2014-06-23 47 views
0

我在我的Android游戏中使用了很多位图,一切都很好,但是当我点击一个按钮开始新活动时,游戏冻结了大约半秒。这并不多,但很烦人。在onDestroy方法中,我回收所有的位图,以节省内存,这导致应用程序冻结。有没有更聪明的解决方案?Android花费太长的时间来回收位图onDestroy

回答

1

也许尝试回收它们在的AsyncTask时的onDestroy被称为

像这样的事情

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    new AsyncTask<Bitmap[],Void,Void>() { 

     @Override 
     protected Void doInBackground(Bitmap[]... params) { 
      for (Bitmap b : params[0]) { 
       b.recycle(); 
      } 
      return null; 
     } 
    }.execute(bitmaps); 
} 
+0

你能给我这个信息? – user3330053

+0

“AsyncTask”可以在后台运行,即使在被调用的“Activity”被销毁之后。由于'AsyncTask'在后台运行,'onDestroy()'不会被阻塞,新的'Activity'将会更快地启动。 – BVB

+0

@ user3330053为您完成了这项工作? – hoomi