第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

正確使用Handler,防止內(nèi)存泄漏

標(biāo)簽:
Android

在android开发过程中,Handler一般我们或多或少都会使用到,虽然使用起来很简单,但是很多人可能不会注意内存泄漏问题,那么怎么快熟解决在使用Handler过程中可能存在的内存泄漏问题呢?请看下面简单的事例

package com.example.myapplication;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

import java.lang.ref.WeakReference;

public class MainActivity extends AppCompatActivity {

    String text = "我是晓果......";
    private MyHandler myHandler;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myHandler = new MyHandler(this);
        new Thread(new Runnable() {
            @Override
            public void run() {
                myHandler.sendEmptyMessageDelayed(0, 3000);
            }
        }).start();
    }

    /*
        使用软引用,重新构建Handler可以解决内存泄漏
     */
    private static class MyHandler extends Handler {
        /**
         * 如果直接持有一个外部类的强应用,会内存泄漏
         * <p>
         * 这只软引用保存,当内存已发生GC的时候就会回收。
         */
        private WeakReference<MainActivity> mainActivity;

        public MyHandler(MainActivity mainActivity) {
            this.mainActivity = new WeakReference<MainActivity>(mainActivity);
        }

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            MainActivity activity = mainActivity.get();
            if (activity == null || activity.isFinishing()) {
                return;
            }
            switch (msg.what) {
                case 0:
                    String text = activity.text;
                    Toast.makeText(activity.getApplicationContext(), text, Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }
}

这样就可以防止在使用Handler过程中可能出现泄漏哦~

點(diǎn)擊查看更多內(nèi)容
3人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
移動(dòng)開發(fā)工程師
手記
粉絲
50
獲贊與收藏
188

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消