当前位置: 首页 > news >正文

网站开发与电子商务中国建设部网站查询网

网站开发与电子商务,中国建设部网站查询网,第一次跑业务怎么找客户,可口可乐网站建设目的转自#xff1a;http://www.linuxidc.com/Linux/2011-10/44785.htm 因为Android使用Java作为开发语言#xff0c;很多人在使用会不注意内存的问题。 于是有时遇到程序运行时不断消耗内存#xff0c;最终导致OutOfMemery#xff0c;程序异常退出#xff0c;这就是内存泄露导…转自http://www.linuxidc.com/Linux/2011-10/44785.htm 因为Android使用Java作为开发语言很多人在使用会不注意内存的问题。 于是有时遇到程序运行时不断消耗内存最终导致OutOfMemery程序异常退出这就是内存泄露导致的。 我们现在就来总结一下可能导致内存泄露的情况 查询数据库而没有关闭Cursor 在Android中Cursor是很常用的一个对象但在写代码是经常会有人忘记调用close, 或者因为代码逻辑问题状况导致close未被调用。  通常在Activity中我们可以调用startManagingCursor或直接使用managedQuery让Activity自动管理Cursor对象。但需要注意的是当Activity介绍后Cursor将不再可用若操作Cursor的代码和UI不同步如后台线程那没需要先判断Activity是否已经结束或者在调用OnDestroy前先等待后台线程结束。除此之外以下也是比较常见的Cursor不会被关闭的情况   try {      Cursor c  queryCursor();      int a  c.getInt(1);      ......      c.close();  } catch (Exception e) {  }   虽然表面看起来Cursor.close()已经被调用但若出现异常将会跳过close()从而导致内存泄露。 所以我们的代码应该以如下的方式编写 Cursor c  queryCursor();  try {          int a  c.getInt(1);      ......  } catch (Exception e) {  } finally {      c.close(); //在finally中调用close(), 保证其一定会被调用   }     调用registerReceiver后未调用unregisterReceiver(). 在调用registerReceiver后若未调用unregisterReceiver其所占的内存是相当大的。而我们经常可以看到类似于如下的代码 registerReceiver(new BroadcastReceiver() {      ...  }, filter); ...   这是个很严重的错误因为它会导致BroadcastReceiver不会被unregister而导致内存泄露。  未关闭InputStream/OutputStream 在使用文件或者访问网络资源时使用了InputStream/OutputStream也会导致内存泄露 Bitmap使用后未调用recycle() 根据SDK的描述调用recycle并不是必须的。但在实际使用时Bitmap占用的内存是很大的所以当我们不再使用时尽量调用recycle()以释放资源。   Context泄露   这是一个很隐晦的内存泄露的情况。先让我们看一下以下代码 private static Drawable sBackground;    Override  protected void onCreate(Bundle state) {    super.onCreate(state);        TextView label  new TextView(this);    label.setText(Leaks are bad);        if (sBackground  null) {      sBackground  getDrawable(R.drawable.large_bitmap);    }    label.setBackgroundDrawable(sBackground);        setContentView(label);  }   在这段代码中我们使用了一个static的Drawable对象。这通常发生在我们需要经常调用一个Drawable而其加载又比较耗时不希望每次加载Activity都去创建这个Drawable的情况。此时使用static无疑是最快的代码编写方式但是其也非常的糟糕。当一个Drawable被附加到View时这个View会被设置为这个Drawable的callback (通过调用Drawable.setCallback()实现)。这就意味着这个Drawable拥有一个TextView的引用而TextView又拥有一个Activity的引用。这就会导致Activity在销毁后内存不会被释放。 转载于:https://www.cnblogs.com/wliangde/p/3712619.html
http://www.pierceye.com/news/496534/

相关文章:

  • 网站备案需要的资料做网站怎么开发客户
  • 怎么做网站作业贵阳网站推广优化公司
  • 峨眉山有做网站的电话开发类似wordpress
  • 俄语网站建设wordpress 系统安装教程
  • 定制建站网站建设上海门户网站的亮点
  • 访问网站的原理大学生网站开发工作室总结
  • 某学校网站建设方案论文沛县网站制作
  • 网站的在线支付怎么做用别人的二级域名做网站
  • 做宣传册从哪个网站找素材吉林省吉林市是几线城市
  • 互助盘网站怎么做的北京做兼职网站有哪些
  • jsp 网站开发教程多语言外贸网站建设
  • 免费销售网站模板下载安装济南网站制作推广
  • 青岛专业网站制作设计vs2008网站开发
  • 电子商务网站功能介绍0基础做网站用什么语言
  • 企业展示网站建设wordpress 优酷免广告
  • 濮阳做网站引导企业做网站
  • 卧龙区网站建设找做牙工作上哪个网站
  • 做网站的会计分录广州公司注册需要什么条件
  • 小米4路由器可以做网站嘛服务类网站建设服务公司
  • 电子商务网站建设规划书实例注册微信公众平台
  • 网站设计课程总结线上营销方案
  • 谷城网站建设网站集群建设实施方案
  • 怎么做外贸生意谷歌seo服务
  • 做网站好还是做淘宝好市场调研模板
  • 网站做换肤做一个平台费用是多少
  • 省内注销二建 建设部网站更新慢网站建设合同书封皮
  • 天津城市建设网站营销型网站的好处
  • 网站建设维护文档好看的页面
  • 网站搜索优化官网网站建设在电子商务中的作用的看法
  • 网站推广费用价格html大屏展示模板