Android中Handler的作用是什么

发布时间:2022-04-11 16:06:27 作者:iii
来源:亿速云 阅读:235

这篇文章主要介绍“Android中Handler的作用是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android中Handler的作用是什么”文章能帮助大家解决问题。

Android Handler的详解

Handler我们常常用于通知主线程做相对应的操作,但是如果使用不但的话就会造成内存泄露,所以记录写正确的Handler写法。

Handler handler = new Handler() {
    public void handleMessage(Message msg) {
      //do something
    };
  };
handler.sendEmptyMessageDelayed(0, 100 * 1000);

像上面的代码片段,就会存在内存泄露的风险,因为handler占着Acitvity的引用阻止了系统进行GC回收操作。

private static class MyHandler extends Handler {
    WeakReference<MainActivity> mWeakReferenceActivity;
    public MyHandler(MainActivity activity) {
      mWeakReferenceActivity = new WeakReference<MainActivity>(activity);
    }

    @Override
    public void handleMessage(Message msg) {
      super.handleMessage(msg);
      if (null != mWeakReferenceActivity) {
        MainActivity _activity = mWeakReferenceActivity.get();
        //_activity.dosomething();
      }
    }
  }

正确的做法是WeakReference存放存入的Activity,这样在Activity结束回收的时候WeakReference不会阻止系统进行回收操作,能有效的避免因为handler引起的内存泄露风险。

当然你使用handler那种写法也不是不行的,需要你在结束Activity的时候handler.removeCallbacksAndMessages(null);让系统能够正常进行回收操作。

关于“Android中Handler的作用是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. Android中的消息机制Handler是什么?
  2. Android中的Handler01

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android handler

上一篇:Android中如何利用Application设置全局变量

下一篇:javascript中的val怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》