Java Android在存储上回收位图花费的时间太长

Java Android在存储上回收位图花费的时间太长,java,android,bitmap,Java,Android,Bitmap,我在android游戏中使用了很多位图,一切都很好,但是当我点击一个按钮开始新的活动时,游戏冻结了大约半秒钟。虽然不多,但很烦人。在onDestroy方法中,我循环使用所有位图,以节省内存,这会导致应用程序冻结。有没有更智能的解决方案?在调用onDestroy时,可以尝试在asynctask中回收它们 像这样的 @Override protected void onDestroy() { super.onDestroy(); new AsyncTask<Bitmap[],V

我在android游戏中使用了很多位图,一切都很好,但是当我点击一个按钮开始新的活动时,游戏冻结了大约半秒钟。虽然不多,但很烦人。在onDestroy方法中,我循环使用所有位图,以节省内存,这会导致应用程序冻结。有没有更智能的解决方案?

在调用onDestroy时,可以尝试在asynctask中回收它们

像这样的

@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);
}
@覆盖
受保护的空onDestroy(){
super.ondestory();
新建异步任务(){
@凌驾
受保护的Void doInBackground(位图[]…参数){
用于(位图b:参数[0]){
b、 回收();
}
返回null;
}
}.执行(位图);
}

你能告诉我更多细节吗?
AsyncTask
可以在后台运行,即使在调用它的
活动
被销毁之后。由于
AsyncTask
在后台运行,
ondestory()
将不会被阻止,新的
活动
将更快地启动。