首页 > 代码库 > 静态变量导致的内存泄露

静态变量导致的内存泄露

public  class MainActivity extends Activity{  
  
          private static final String TAG = "MainActivity";  
          private static Context sContext;  
  
  
          @Override  
          protected void onCreate(Bundle savedInstanceState){  
                  super.onCreate(savedInstanceState);                   
                   
                  setContentView(R,layout.main);                    
                  sContext = this;//sContext为静态变量,生命周期较长。导致当前activity无法销毁,因次静态sContext引用了它。导致内存泄露。  
     }  
 }  
//由于用静态成员 TAG 缓存了drawable对象,所以activity加载速度会加快,但是这样做是错误的。  
//因为在android 2.3系统上,它会导致activity销毁后无法被系统回收。  

  

静态变量导致的内存泄露