Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6214
  • 博文数量: 6
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-07 21:52
文章分类

全部博文(6)

文章存档

2013年(6)

我的朋友
最近访客

分类: Android平台

2013-05-07 16:31:37

今天彻底解决了OOM的问题,其实还是自己写代码不严谨,有些东西没有及时释放,还有些释放的位置不对,总结一下就是:
   如果项目有三关,每一关需要的资源都不一样,那就最好每关单独写。
   Init();//初始化,里面存放一些变量的值
   getImage();//里面是获取图片或者声音的代码,比如说你要获取图片,如下:
   if(Bitmap==null){
         Bitmap=..........;
     }
     如果你的用了其它的类需要new的时候,先全局变量给个名字,比如说 Game game;然后在getImage()里new
      if(game==null){
       game=new Game();
      }
      ///////////////////////////////////////////////////////
      releaseImage();
      这里面就简单了,把你不用的图片和不用的类都变成null就好了
    Bitmap=null;
      game=null;
       三关都这样单独写,等觉得没问题的时候再合成,其中在合成的类中用switch case区别开,用到哪个就getImage哪个,不用的时候再releaseImage掉,这样就不会报OOM的错误了。
     我之前总报这个错误是因为我case了11次 算算差不多是11关,其中有几关的get和release弄混淆了,所以这个隐藏的BUG一直都刺痛着我的神经,在这里分享一下心得,如果你不需要new其他的类,这个OOM的错误报的就不会很频繁的。
阅读(256) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~