在我现在写的这个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。
- 2 回答
- 0 关注
- 729 浏览
添加回答
举报
0/150
提交
取消