FileDownloader
FileDownloader copied to clipboard
下载完成状态更新问题!
RemitDatabase
@Override public void updateCompleted(int id, long total) {
this.cachedDatabase.updateCompleted(id, total);
if (isNoNeedUpdateToRealDB(id)) {
handler.removeMessages(id);
if (handlingId.get() == id) {
parkThread = Thread.currentThread();
handler.sendEmptyMessage(WHAT_CLEAN_LOCK);
LockSupport.park();
this.realDatabase.updateCompleted(id, total);
}
}
else {
this.realDatabase.updateCompleted(id, total);
}
freeToDBIdList.remove((Integer) id);
}
如下载接近完成(暂停状态),只要下载速度稍快,下载完成状态会永远得不到更新(更新数据库时间设置稍大2000ms),重新打开APP会变成原来的暂停状态! 因完成状态的特殊性是否考虑在该方法中直接调用 this.realDatabase.updateCompleted(id, total);
以避免上述问题?
你的意思是,已经下载完成的任务,再重新打开时,状态变成了暂停?而不是已完成?
是的 调试发现由于更新数据库时间设置2000毫秒,没有删除数据库记录,导致的状态错误
@androidChao 可以提供一份详细的 FileDownloader 的日志吗?
我也遇到这个问题了,下载完成后未更新数据库,下载再进来还是暂停时的进度