随手写个Handler,然后飘黄,看着挺难受(黄色警告的大概意思:Handler可能会内存泄漏,推荐你用静态内部类+实例化弱引用);

This Handler class should be static or leaks might occur (anonymous android.os.Handler) less...
Since this Handler is declared as an inner class, it may prevent the outer class from being garbage collected. If the Handler is using a Looper or MessageQueue for a thread other than the main thread, then there is no issue. If the Handler is using the Looper or MessageQueue of the main thread, you need to fix your Handler declaration, as follows: Declare the Handler as a static class; In the outer class, instantiate a WeakReference to the outer class and pass this object to your Handler when you instantiate the Handler; Make all references to members of the outer class using the WeakReference object.

这个处理程序类应该是静态的,否则可能会发生泄漏(android.os.Handler)

由于这个处理程序声明为内部类,它可能会阻止外部类被垃圾收集。如果处理程序对主线程以外的线程使用循环程序或MessageQueue,则没有问题。如果处理程序使用主线程的Looper或MessageQueue,则需要修复处理程序声明,如下所示:将处理程序声明为静态类;在外部类中,实例化对外部类的弱引用,并在实例化处理程序时将此对象传递给处理程序;使用WeakReference对象引用外部类的所有成员。

不管,先提示一下:

这个注解看着也难受;

按照它的警告修改一下(推荐使用):

   //静态内部类 弱引用private BleHandler mHandler = new BleHandler(getApplication());static class BleHandler extends Handler{WeakReference weakReference;public BleHandler(Context context){weakReference = new WeakReference(context);}@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if (weakReference == null)return;}}

还可以这样去写,没有警告:

    private Handler mHandler = new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(Message message) {return false;}});

转载于:https://www.cnblogs.com/cuichen16/p/10785944.html

@SuppressLint(HandlerLeak),或Handler使用有警告;相关推荐

  1. android 的几个黄色警告解决办法(转)

    转自:http://my.eoe.cn/864234/archive/5162.html 1:Handler 1 2 3 4 5 6 7 8 // This Handler class should ...

  2. 关于handler子线程通知主线程的几种写法

    以下是我一年实习中总结的几种子线程中通知主线程的方法 runOnUiThread 注意:context 对象要是 主线程中的Activity,这样强转才可以. runOnUiThread(new Ru ...

  3. Handler全家桶之 —— Handler 源码解析

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 本文首发于本人简书 前言 好记性不如烂笔头. 这是一个系列文章,将会包括: Handler全家桶之 -- Handler 源码解析 ...

  4. Handler详解(上)

    一.Handler简单使用 1.Handler最常规的用法是 在UI线程接收消息,在子线程发送消息. 代码 public class HandlerActivity extends AppCompat ...

  5. 倒计时 总结 Timer Handler CountDownTimer RxJava MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. 消息通信--Handler

    前言:基于Android 31阅读源码 @Deprecated 1:Handler的常见用法: 1.1:主线程实现方式 /*** 定义静态内部类实现Handler* 从Android 11 起,Han ...

  7. 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件

    博客地址 : http://blog.csdn.net/shulianghan/article/details/41520569 代码下载 : -- GitHub : https://github.c ...

  8. Android 接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  9. Android接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  10. 第三方支付宝API应用流程

    一.准备工作 > 1. 登录第三方支付宝开放平台 点击链接支付宝开放平台 (https://open.alipay.com/index.htm) 2. 开发前一定要阅读支付宝官方文档中心开发步骤 ...

最新文章

  1. 设计高效sql一般经验谈
  2. Android23版本以上删除HttpClient的解决办法
  3. outlook存档邮件_如何在Outlook 2013中存档电子邮件
  4. java lambda循环_使用Java 8 Lambda简化嵌套循环
  5. 吃PHP小孩智力好,这7种鱼千万不能给孩子吃,会影响孩子的智力!
  6. win 10 VMware与Hyper-v共存
  7. kafka python教程_由Flink与Kafka实践探究Kafka的两个问题
  8. 压力测试与负载测试的区别
  9. ytkah网站建设解决方案 大中小微企业营销利器
  10. 阿里云云原生一体化数仓 - 数据安全能力解读
  11. java课设超市收银系统_超市收银系统java课程设计.doc
  12. excel 超链接修改失败解决办法
  13. java ssl 双向认证_java实现 SSL双向认证
  14. 关于利用Klayout查看GDS需要导入工艺库的layer properties file(.lyp)
  15. 联合国儿童基金会宣布与微软达成新合作
  16. 【用C语言绘制直角坐标系】
  17. GRACE重力卫星水文应用基本概念之时变重力场
  18. 前辈不是我,借他人事迹助暖通新人!
  19. 单元格等于计算机日期,Excel相邻单元格快速填入相同日期的几种方法
  20. win10内存占用过高

热门文章

  1. SQL Sverver 2000 管理安全性
  2. codeforce 460B Little Dima and Equation
  3. Illustrator中文版教程,如何在 Illustrator 中快速连接和修剪路径?
  4. 苹果Mac智能的Python集成开发环境:PyCharm Pro
  5. inDesign教程,如何创建杂志风标注?
  6. Ps 初学者教程,如何向风景图中添加元素?
  7. Mac 麦克风不工作?6 种修复方法
  8. JAVA程序员面试32问(价值8k)你认同吗?
  9. 201771010111李瑞红《第十六周学习总结》
  10. python爬虫——与不断变化的页面死磕和更新换代(3)