github - android - FileDownloader: Tasks with the listener can't start -
i use this library, when press "refresh" button in app, library displays error:
w/filedownloader.filedownloader: tasks listener can't start, because can't find task provided listener, maybe tasks instance has been started in past, inusing, if in case, can use [basedownloadtask#reuse] reuse theme first start again: [ru.webant.projects.dossier.activity.mainactivity$7@18e962dd, true]
onclick button "refresh":
public void refreshlist() { if (isonline()) { filedownloader.getimpl().pauseall(); final restserviceapi apiservice = servicegenerator.createservice(restserviceapi.class, getstring(r.string.base_url), remindtoken()); getcontent(apiservice); } else { toast.maketext(mainactivity.this, getstring(r.string.no_internet_connection), toast.length_short).show(); } }
getcontent(apiservice) gets list of files , calls method:
public void savefilesondisk(final list<folder> folders, final int index) { final list<file> files = folders.get(index).getfiles(); progressbar.setprogress(0); progressbar.setmax(files.size()); string downloaderfile = ""; final filedownloadlistener queuetarget = new filedownloadsamplelistener() { @override protected void pending(basedownloadtask task, int sofarbytes, int totalbytes) { log.i("status: ", "pending"); super.pending(task, sofarbytes, totalbytes); } @override protected void progress(basedownloadtask task, int sofarbytes, int totalbytes) { log.i("status: ", "progress"); super.progress(task, sofarbytes, totalbytes); } @override protected void error(basedownloadtask task, throwable e) { log.i("status: ", "error"); super.error(task, e); //task.reuse(); //savefilesondisk(folders, 0); } @override protected void connected(basedownloadtask task, string etag, boolean iscontinue, int sofarbytes, int totalbytes) { super.connected(task, etag, iscontinue, sofarbytes, totalbytes); log.i("connected file: ", task.getpath()); } @override protected void paused(basedownloadtask task, int sofarbytes, int totalbytes) { log.i("status: ", "pause"); super.paused(task, sofarbytes, totalbytes); } @override protected void completed(basedownloadtask task) { super.completed(task); log.i("download: ", "completed; " + homefolder + java.io.file.separator + task.getpath()); progressbar.setprogress(progressbar.getprogress() + 1); (int = 0; < files.size(); i++) { string filepath = homefolder + java.io.file.separator + files.get(i).getpath().substring(2); if (filepath.equals(task.getpath())) { adapter.notifyitemchanged(i); } } if (progressbar.getprogress() == files.size() - 1) { if (index < folders.size() - 1) { savefilesondisk(folders, index + 1); } } } @override protected void warn(basedownloadtask task) { log.i("status: ", "warn"); super.warn(task); } }; (int = 0; < files.size(); i++) { downloaderfile = files.get(i).getpath(); string fullpath = homefolder + java.io.file.separator + downloaderfile.substring(2); if (!(new java.io.file(fullpath).exists())) { final string url; boolean isdir = false; url = "http://..." + downloaderfile; filedownloader.getimpl().create(url) .setpath(fullpath, isdir) .setcallbackprogresstimes(300) .setminintervalupdatespeed(400) .setlistener(queuetarget) .asinqueuetask() .enqueue(); } else { progressbar.setprogress(progressbar.getprogress() + 1); if (index == files.size() - 1) { savefilesondisk(folders, index + 1); } } } filedownloader.getimpl().start(queuetarget, true); }
how handle error? want files
Comments
Post a Comment