V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  m30102  ›  全部回复第 1 页 / 共 7 页
回复总数  122
1  2  3  4  5  6  7  
驴拉磨只是为了前面那根胡萝卜,有没有纯粹的驴?
234 天前
回复了 troubleShark 创建的主题 酷工作 [上海] 米哈游内推 四月更新
GG 一次的话冷冻期是多久?
还问为什么用红黑树
246 天前
回复了 Mr0C 创建的主题 程序员 一年经验用十年在程序员圈子是指什么概念
intel 的挤牙膏技术?
还有人用 pc 听音乐?
253 天前
回复了 panda666 创建的主题 职场话题 现在 C++客户端是不是不太好找工作了?
@pekki 大龄渣渣 android 受害者路过
253 天前
回复了 fanyingmao 创建的主题 问与答 有没什么方案让钉钉自动打卡?
买个机械手和二手手机 放在公司抽屉
android 自定义 view
253 天前
回复了 robin78 创建的主题 酷工作 深圳鹰利科技有限公司 30K 诚聘 安卓
确定吗 1 年经验 30K ?
@elonmask 以前 20 分的水平能一年一套房,现在 80 分的水平大概率睡桥洞
@vanxy 我反编译了半天对比了下找到原因了, 是 okhttpclient 的原因,activity 虽然执行 destory 了,但是 okhttpclient 还在执行 call,所以延长了 activity 生命,报泄漏。如果把 okhttpclient 写在其他类中声明 static, 那么 activity 中调用协程方法传的 callBack 必须不能引用 activity 任何成员变量或者 view 等,不然还是会被延长生命,一般传回调就是为了改变 view 等,所以这个是无解的!
@sankemao liveData 一般配合 viewmodel 用吧,难道非得 mvp 或者 mvvm 把 activity 完全隔开才行吗。。。。
@vanxy 是的,我有用 withContext. 无论是 execute 还是 enqueue ,activity finish 后传的 callback 不会执行,但是 okhttp 的 call 还是会执行的。
@k10ndike 测试过, static 的 OkHttpClient 最终会通过 activity 中传入的 lambda 回调,引用到 activity
@vanxy 同步的我试了,还是一样。同步的话只是自动取消协程,但是 call.execute()方法开始执行后并不会立即取消。
@hlayk 如果还需要考虑 onDestory,那么 lifecycleScope 就不用叫 lifefcycleScope 了。实际上 lifefcycleScope 也确实自动 cancel 了,最终的 callBack 没有执行。但是网络请求不一定能成功 cancel,而且回调时间较长,leakcanary 不知为什么显示引用到了 activity 。 如果替换为 viewModelScope 也有效,有时候一个页面就一个网络请求懒得再写一个类直接在 activity 中请求网络,这样貌似 无解?
@k10ndike OKHttpClient 对象就算写在其他类中,同样是单例的话, 也会间接持有到 activity
@lianyue13 我换了 suspendCancellableCoroutine, 也在 invokeOnCancellation 添加了 call.cancel(). 和之前一样,leakcanary 还是会有 x retained objects,tap to dump heap,不过很快通知就变成了 All retained objects were garbage collected . 这样是为什呢,我还需要担心吗?
357 天前
回复了 DBQ 创建的主题 Android 国产安卓系统级推送什么时候能解决?
等一个秦始皇统一天下
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3608 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 01:32 · PVG 09:32 · LAX 17:32 · JFK 20:32
♥ Do have faith in what you're doing.