0
我在我的Android游戏中使用了很多位图,一切都很好,但是当我点击一个按钮开始新活动时,游戏冻结了大约半秒。这并不多,但很烦人。在onDestroy方法中,我回收所有的位图,以节省内存,这导致应用程序冻结。有没有更聪明的解决方案?Android花费太长的时间来回收位图onDestroy
我在我的Android游戏中使用了很多位图,一切都很好,但是当我点击一个按钮开始新活动时,游戏冻结了大约半秒。这并不多,但很烦人。在onDestroy方法中,我回收所有的位图,以节省内存,这导致应用程序冻结。有没有更聪明的解决方案?Android花费太长的时间来回收位图onDestroy
也许尝试回收它们在的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);
}
你能给我这个信息? – user3330053
“AsyncTask”可以在后台运行,即使在被调用的“Activity”被销毁之后。由于'AsyncTask'在后台运行,'onDestroy()'不会被阻塞,新的'Activity'将会更快地启动。 – BVB
@ user3330053为您完成了这项工作? – hoomi