Android开发程序员Android技术知识

Handler

2017-09-05  本文已影响43人  blingblingson

目录

  1. 什么是Handler
  2. 使用方式
  3. 源码解析
  4. 内存泄漏问题

1. 什么是Handler

2. 使用方式

3. 源码解析

Looper

Handler

注意:

4. 内存泄漏问题

Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        mImageView.setImageBitmap(mBitmap);
    }
}

原因:

非静态内部类持有外部类的引用

解决:

static class MyHandler extends Handler {
    WeakReference<Activity > mActivityReference;

    MyHandler(Activity activity) {
        mActivityReference= new WeakReference<Activity>(activity);
    }

    @Override
    public void handleMessage(Message msg) {
        final Activity activity = mActivityReference.get();
        if (activity != null) {
            mImageView.setImageBitmap(mBitmap);
        }
    }
}

参考资料

上一篇 下一篇

猜你喜欢

热点阅读