问题描述
我只有一个位图,可用于分配给静态变量。我没有将此设置为任何imageview。将其分配给静态变量后,我想通过键入bitmap.recycle()将其从内存中删除。当我只使用bitmap.recycle()行时,我没有收到错误,但是当我尝试切换到另一个页面时,却收到了错误。
StaticVeriables.getScannedFromgallery=bitmap;
bitmap.recycle();
//Intent gallery1 = new Intent(MainActivity.this,Editimage.class);
//gallery1.putExtra("isgallery",true);
//startActivity(gallery1);
//finish();
StaticVeriables.getScannedFromgallery=bitmap;
bitmap.recycle();
Intent gallery1 = new Intent(MainActivity.this,Editimage.class);
gallery1.putExtra("isgallery",true);
startActivity(gallery1);
finish();
解决方法
我解决了这个问题。这与切换到另一个活动无关。由于我在前一行中将位图分配给了静态变量,因此当我编写bitmap.recycle()时,由于该位图是一个引用静态变量,并且在其他类中使用了此静态变量,因此我得到了一个错误。通过将位图变量复制到静态变量中,我解决了这个问题。在那:
//I solved my problem with this line
StaticVeriables.getScannedFromGallery=bitmap.copy(bitmap.getConfig(),true);
/*Whe should not do this
StaticVeriables.getScannedFromGallery=bitmap;*/
bitmap.recycle();
Intent gallery1 = new Intent(MainActivity.this,EditImage.class);
gallery1.putExtra("isGallery",true);
startActivity(gallery1);
finish();