猿问

Android 开发中使用AsyncTask

在我现在写的这个App里边会有类似于那些新闻类的消息,就是有个list,里边每个item包含文字图片这些内容,我现在使用的是AsyncTask来进行网络请求的。
看到网上有些人说在android中使用AsyncTask很容易造成内存泄露,请问前辈们有什么方法可以避免AsyncTask的内存泄露,或者用其他什么方法进行网络请求。
回首忆惘然
浏览 286回答 2
2回答

繁花如伊

不建议使用AsyncTask进行网络操作,Android文档中有写到AsyncTask应该处理10秒一下的操作(通常为轻量的本地IO操作),由于网络操作存在不确定的超时,所以可能操作会在10秒以上,不建议使用。关于AsyncTask内存泄露的,以及并行串行问题。可以访问这篇文章了解。译文:Android中糟糕的AsyncTask将AsyncTask或者Thread的子类作为单独的文件,不持有Activity的强引用将AsyncTask或者Thread的子类使用static修饰,则不会隐式持有Activity的强引用如果是匿名内部类,则需要将其对象设置成成员属性,使用static修饰就不会隐式持有Activity的强引用。如果是进行网络操作,可以使用将AsyncTask对象做成静态的成员变量。使用这个Executors.newSingleThreadExecutor()或者Loaders。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答