为了账号安全,请及时绑定邮箱和手机立即绑定

Android 开发中使用AsyncTask

Android 开发中使用AsyncTask

繁花如伊 2018-08-30 08:10:15
在我现在写的这个App里边会有类似于那些新闻类的消息,就是有个list,里边每个item包含文字图片这些内容,我现在使用的是AsyncTask来进行网络请求的。看到网上有些人说在android中使用AsyncTask很容易造成内存泄露,请问前辈们有什么方法可以避免AsyncTask的内存泄露,或者用其他什么方法进行网络请求。
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

不建议使用AsyncTask进行网络操作,Android文档中有写到AsyncTask应该处理10秒一下的操作(通常为轻量的本地IO操作),由于网络操作存在不确定的超时,所以可能操作会在10秒以上,不建议使用。

关于AsyncTask内存泄露的,以及并行串行问题。可以访问这篇文章了解。译文:Android中糟糕的AsyncTask

将AsyncTask或者Thread的子类作为单独的文件,不持有Activity的强引用
将AsyncTask或者Thread的子类使用static修饰,则不会隐式持有Activity的强引用
如果是匿名内部类,则需要将其对象设置成成员属性,使用static修饰就不会隐式持有Activity的强引用。

如果是进行网络操作,可以使用将AsyncTask对象做成静态的成员变量。使用这个Executors.newSingleThreadExecutor()或者Loaders。


查看完整回答
反对 回复 2018-09-18
  • 2 回答
  • 0 关注
  • 729 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信