Android 避免内存泄漏

什么是内存泄露?

  就是该回收的内存因为种种缘由没有被回收,还驻留在内存中。this

内存泄露有什么影响?

  可能一处小小的内存泄露就会致使整个应用卡顿,甚至崩溃。spa

 

例子说明:  

Toast.makeText(MainActivity.this,"Hello",Toast.LENGTH_SHORT).show();

  这段代码可能会出现内存泄露。code

为何说可能会形成内存泄露?

  若是在Toast消失以前,Toast 持有了当前的 Activity,而此时,用户点击了返回键,致使 Activity 没法被 GC(Garbage Collection垃圾回收) 回收,这个Activity 就引发了内存泄露。对象

解决方法?

  全部和当前 Activity 无关的 Context 均可以传入,避免内存泄露的方法一样使用其余须要传入 Context 的地方。(这句话我表示理解不了)以下blog

Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

   getApplicationContext()是整个应用的上下文,不会持有某个 Activity 对象。内存

 

注意

  dialog的上下文不能使用getApplicationContext(),程序会崩掉,dialog实例化必须持有 Activity对象。get

相关文章
相关标签/搜索