在AsyncTaskLoader中旋转设备时,ProgressBar已清除是因为Activity在旋转设备时会被销毁并重新创建,而AsyncTaskLoader是与Activity绑定的,所以在Activity重新创建时,AsyncTaskLoader也会重新创建。这导致之前的ProgressBar实例被销毁,因此在旋转设备后无法继续显示之前的ProgressBar。
为了解决这个问题,可以使用以下方法:
- 使用ViewModel:将数据与UI分离,将需要在旋转设备后保留的数据存储在ViewModel中。这样,在Activity重新创建时,可以从ViewModel中获取之前的数据并重新显示ProgressBar。
- 使用Fragment:将AsyncTaskLoader与Fragment绑定,而不是与Activity绑定。因为Fragment在旋转设备时会保留其实例,所以AsyncTaskLoader也会保留。这样,在旋转设备后,ProgressBar仍然可以保持显示。
- 使用LoaderManager:LoaderManager是用于管理Loader的类,可以在Activity重新创建时重新初始化Loader,并重新显示ProgressBar。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。