当前位置:网站首页>AsyncTask的替代方案
AsyncTask的替代方案
2022-08-08 23:10:00 【jxq1994】
在使用AsyncTask加载数据时,如果遇到设备配置改变,比如设备旋转,你得负责管理它的生命周期,同时还要保存好数据,不让其因旋转丢失。虽然调用Fragment的setRetainInstance(true)方法来保存数据可以解决问题,但它不是万能的。很多时候,你还得编写特殊场景应对代码,让应用无懈可击。这些特殊场景有:用户在AsyncTask运行时点击后退键,以及启动AsyncTask的fragment因内存紧张而被销毁。
使用Loader是一种可行的解决方案,它可以代劳很多棘手的事情。Loader用来从某些数据源加载数据对象,数据源可以是磁盘、数据库、ContentProvider、网络甚至是另一进程。
AsyncTaskLoader是个抽象Loader,它可以使用AsyncTask把数据加载工作转移到其他线程上。我们创建的loader类几乎都是AsyncTaskLoader的子类。AsyncTaskLoader能在不阻塞主线程的前提下获取到数据,并把结果发送给目标对象。
下面就来看看它的具体用法吧。
边栏推荐
- 【Pytorch】学习笔记(一)
- stm32 uses spi1 to read data from dma in slave mode
- 2021 RoboCom 世界机器人开发者大赛-本科组(决赛)7-4猛犸不上 Ban(最短路)
- 小程序banner图展示
- Qt入门(四)——连续播放图片(两种定时器的运用)
- Kubernetes 企业如何落地
- 2022杭电多校六 1009-Map (巴那赫不动点)
- Virtual router redundancy protocol VRRP - double-machine hot backup
- 考证必看 | PMP扫盲贴+PMP材料
- (2022牛客多校五)D-Birds in the tree(树形DP)
猜你喜欢
随机推荐
WeChat applet develops some function usage methods
机器学习建模高级用法!构建企业级AI建模流水线
[Bug solution] ValueError: Object arrays cannot be loaded when allow_pickle=False
DHCP的防御机制——DHCP Snooping(DHCP监听)
Hi3516 使用 wifi模块
Kubernetes 资源编排系列之二: Helm 篇
Virtualization type (with picture)
(2022牛客多校五)C-Bit Transmission(思维)
bp神经网络的学习心得
【PP-YOLOv2】测试自定义的数据集
2022牛客多校六 J-Number Game(简单推理)
小程序banner图展示
Modal dialog is used to implement the sign-in
详解JS中for...of、in关键字
meta learning
主从延迟原因及解决方案
stm32 uses serial port to receive idle interrupt + dma to achieve variable length dma reception
The Socket (Socket)
(newcoder 15079)无关(容斥原理)
Introduction to Qt (5) - file operation, hotkey and mouse reading (implementation of txt window)









