内存泄露案例

2017-10-12  本文已影响0人  叙忆
对象本应被GC回收的情况,由于被外部对象引用持有,导致不能被正常回收
Bean.java
public class Bean {
    private Context mContext;

    public Bean(Context context) {
        mContext = context;
    }
}
MainActivity.java
public class MainActivity extends AppCompatActivity {

    public static ArrayList<Bean> mBeens = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Bean持有MainActivity的实例
        //当旋转Activity 执行onCreate方法
        mBeens.add(new Bean(this));
    }
}
Bean持有MainActivity的实例
当旋转多次Activity 执行onCreate方法,由于mBeens是静态变量,始终持有MainActivity的对象
步骤
1.查看memory
2.多次旋转手机,导致memory上升
如上就是内存泄露
上一篇 下一篇

猜你喜欢

热点阅读