首页 > 开发 > iOS > 正文

Activity重建时如何重新获取文件下载进度

2017-09-08 13:46:20  来源:网友分享

做了一个下载文件的列表,用RecyclerView展示。点击下载某个文件,交由单独的下载类去处理(单例),下载类计算下载进度返回给UI进行更新。但是当用户点击返回按钮返回上一级的时候,下载线程没有停止,activity被销毁。重新进入此Activity的时候,RecylerView里的对象是通过网络新获取的,怎么设计才能让此时RecyclerView里的对象和下载类里的对象对应起来呢?否则无法实时更新进度及状态。

解决方案

这种涉及到对象销毁重建的逻辑处理时要注意解耦,不应该去让对象引用对应起来,而是数据值对应起来。网络处理不要直接放在Activity或RecylerView里进行。对于下载,最好是起后台服务来管理你的下载线程,然后让服务和Activity进行数据通信,这样你就不用关心你的对象是否能对应上了,你只需要关心服务报告给你的下载进度值。至于Service和Activity的交互,网上太多的教程和轮子了,我就不再啰唆了。