android - 研究了一下腾讯信鸽的demo,感觉里面一个自定义handler类有问题
迷茫
迷茫 2017-04-17 15:51:59
[Android讨论组]
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
怪我咯

theActivity == null也有可能是GC回收掉的
不过除非它MainActivity的构造函数里做了特别的处理,
否则这种判断为空后直接new activity的做法是不妥当的

PHP中文网

注意看:

private static class HandlerExtension extends Handler {

这个内部类有static修饰,因此并依赖外部类的实例,也就是说HandlerExtension的生命周期与外部类是独立的。而你说的mActivity又是弱引用的:

        WeakReference<MainActivity> mActivity;

所以系统GC的时候,这个MainActivity就可能被释放掉了,那么这个HandlerExtension中,如果不判断,则很大可能是null。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号