內(nèi)存泄露案例

對象本應(yīng)被GC回收的情況,由于被外部對象引用持有,導(dǎo)致不能被正常回收
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的實例
        //當旋轉(zhuǎn)Activity 執(zhí)行onCreate方法
        mBeens.add(new Bean(this));
    }
}
Bean持有MainActivity的實例
當旋轉(zhuǎn)多次Activity 執(zhí)行onCreate方法,由于mBeens是靜態(tài)變量,始終持有MainActivity的對象


步驟
1.查看memory
2.多次旋轉(zhuǎn)手機,導(dǎo)致memory上升
如上就是內(nèi)存泄露
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容