我用一个活动创建了简单的测试应用程序。活动包含帧动画。帧动画(riffle_forward_anim)中图像的总大小约为1MB。这是我用来加载动画的代码:
public class MainScreen extends Activity {
/** Called when the activity is first created. */
私密的ImageView imgForward;
私人ImageView imgBack;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imgForward = (ImageView) findViewById(R.id.imgForward);
imgForward.setBackgroundResource(R.anim.riffle_forward_anim);
}
@Override
public void onPause(){
super.onPause();
AnimationDrawable anim = (AnimationDrawable) imgForward.getBackground();
int count = anim.getNumberOfFrames();
for(int i=0;i<count;i++){
anim.getFrame(i).setCallback(null);
}
imgForward.getBackground().setCallback(null);
imgForward = null;
}
}
正如您所看到的,我尝试在onPause()方法中释放内存。是的,我看过http://developer.android.com/resources/articles/avoiding-memory-leaks.html
如果我多次更改protrait / landscape模式,无论如何都会发生崩溃。 我知道我可以处理方向更改并避免崩溃但我需要在我的其他应用程序中释放内存而不更改方向。这就是为什么我创建了简单的测试应用程序来了解实现内存的工作原理。 任何人都可以给我一个如何实现这一点的提示吗?
由于