前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >This Handler class should be static or leaks might occur

This Handler class should be static or leaks might occur

作者头像
用户2657851
发布2020-03-04 13:48:20
6270
发布2020-03-04 13:48:20
举报
文章被收录于专栏:vsdfa

Handler 类应该应该为static类型,否则有可能造成泄露。在程序消息队列中排队的消息保持了对目标Handler类的应用。如果Handler是个内部类,那 么它也会保持它所在的外部类的引用。为了避免泄露这个外部类,应该将Handler声明为static嵌套类,并且使用对外部类的弱应用。

代码语言:javascript
复制
    static class MyHandler extends Handler
{
    WeakReference<PopupActivity> mActivity;
    MyHandler(PopupActivity activity)
    {
        mActivity = new WeakReference<PopupActivity>(activity);
    }
    @Override
    public void handleMessage(Message msg)
    {
        PopupActivity theActivity = mActivity.get();
        switch (msg.what)
        {
        case 0:
            theActivity.popPlay.setChecked(true);
            break;
        }
    }
}
MyHandler ttsHandler = new MyHandler(this);
private Cursor mCursor;

private void test()
{
    ttsHandler.sendEmptyMessage(0);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档