由于AsyncTaskLoader
可以执行AsyncTask
所能做的所有事情,并且还具有内置的最佳实践功能,例如线程复制和&预先成熟的死亡预防。
有没有理由再使用AsyncTask
了?或者我应该盲目地使用AsyncTaskLoader
无处不在
答案 0 :(得分:5)
Service
或IntentService
某种后台工作机制。AsyncTaskLoader
。AsyncTask
因为当您的活动暂停/销毁/配置更改时AsyncTask继续运行...在这种情况下,请注意内存泄漏/活动对象为空。你必须自己处理。每种情况,都有不同的处理和避免方式。但请记住以上最简单的解决方案。
答案 1 :(得分:4)
AsyncTaskLoader仅对加载Activity或Fragment中的数据有用。 AsyncTask功能更多,可以在任何类型的组件中进行任何类型的后台操作。还有像RxJava,HandlerThreads,简单线程等替代品,但它肯定不会被弃用。
答案 2 :(得分:3)
在2017年,当问这个问题时,AsyncTask仍然没有被弃用。 但是,由于AsyncTask需要进行大量检查以避免内存泄漏,因此它在Android 11中已被弃用。
这是Android ASOP项目中的正式合并提交。 他们建议的替代方法是java.util.concurrent以及Kotlin项目的协程。
https://android-review.googlesource.com/c/platform/frameworks/base/+/1156409