Android Handler 防止內存泄漏 內存泄漏的幾種方式

參考網站:https://blog.csdn.net/Gods_magic/article/details/85255860 

內存泄漏的危害 

內存泄漏的危害就是會使虛擬機佔用內存過高,導致OOM(內存溢出),使程序異常。

對於一個Android應用來說,打開一個Activity,使用完後關閉,出現內存泄漏;又打開,又關閉,又泄漏;幾次之後,程序佔用的內存就會超過系統的限制,導致FC。

 

public class TestActivity extends AppCompatActivity {
    private Handler handler = new Handler();

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

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {

            }
        },10000);
        finish();
    }
}


 public static class MyHandler extends Handler{
        private WeakReference<TestActivity> mActivity;

        public MyHandler(TestActivity activity){
            mActivity = new WeakReference(activity);
        }

        @Override
        public void handleMessage(Message msg) {
            if (mActivity.get() == null) {
                return;
            }

            //接受到消息的處理
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章