2012年6月29日

Context 使用不当造成内存泄露

摘要: 问题: Activity中的context被传递给了一个生命周期长过activity的对象(通常为静态单实例变量),导致activity不能正常被销毁。 示例:Activity 调用 ChatMgr 时将context传递进来,由于ChatMgr为单实例对象,context被引用,导致Activity退出时无法销毁。见代码:public static ChatMgr getInstance(Context context){ if (instance == null) { instance = new ChatMgr(); } mContext... 阅读全文

posted @ 2012-06-29 20:36 沙翁 阅读(459) 评论(0) 推荐(0)

如何避免Android内存泄漏——Context

摘要: 我们在做android应用开发的时候经常会陷入内存泄漏的问题中,大多数时候内存的泄漏都是由于犯了相同的错误:长期持有了一个Context的引用。Android上 ,Context可以用于很多操作,但是大部分时候是用来加载以及使用资源。这就是为什么所有的widgets在他们的构造函数中接受一个Context参数。在一般的android应用中,你通常有两种Context:分别是Activity和Application。通常的,当我们的类和方法需要使用到context时,我们传递的是Activity这个context:@Override protected void onCreate(Bund... 阅读全文

posted @ 2012-06-29 20:27 沙翁 阅读(1958) 评论(0) 推荐(1)

startActivity时报错Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag

摘要: 原代码如下:Intent intent = new Intent();intent.setClass(mContext, PhotoView.class);Bundle bundle = new Bundle();intent.putExtras(bundle); mContext.startActivity(intent);报错如下:06-28 11:24:40.359: E/AndroidRuntime(7397): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activi 阅读全文

posted @ 2012-06-29 19:59 沙翁 阅读(17949) 评论(0) 推荐(2)

导航