zoukankan      html  css  js  c++  java
  • 处理handler中的内存泄漏

    package de.bvb.test;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    
    import java.lang.ref.WeakReference;
    
    public class MainActivity extends Activity {
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            new Thread(new Runnable() {
                @Override
                public void run() {
                    //3.子线程中发送消息
                    handler.sendEmptyMessage(1);
                }
            }).start();
    
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //4.在onDestroy把消息对象从消息队列移除
            handler.removeCallbacksAndMessages(null);
        }
    
        //2.创建handler的实例
        private Handler handler = new MyHandler(this);
    
        //1.创建静态的自定义Handler类
        static class MyHandler extends Handler {
            private WeakReference<Activity> mWeakReference;
    
            //传入activity,加上弱引用
            public MyHandler(Activity activity) {
                mWeakReference = new WeakReference<>(activity);
            }
    
            //在handleMessage处理业务
            @Override
            public void handleMessage(Message msg) {
                Activity activity = mWeakReference.get();
                if (activity != null) {
                    switch (msg.what) {
                        case 1:
                            break;
                        default:
                            break;
                    }
                }
            }
        }
    }
  • 相关阅读:
    暑假第二周总结
    7.18-7.24 第一周周报
    poj 3295 Tautology
    2016多校 #2 1006 Fantasia
    codeforces 698B Fix a Tree
    codeforces 699B Bomb
    HDU 4578(线段树
    CF 600F( 二分图
    hdu 5517 Triple(二维树状数组)
    HDU HDOJ5412(树套树or整体二分
  • 原文地址:https://www.cnblogs.com/Westfalen/p/6185875.html
Copyright © 2011-2022 走看看