Android 发布进度
示例
有时,我们需要更新由进行的计算进度AsyncTask。此进度可以用字符串,整数等表示。为此,我们必须使用两个函数。首先,我们需要设置onProgressUpdate其参数类型与的第二类型参数相同的函数AsyncTask。
class YourAsyncTask extends AsyncTask<URL, Integer, Long> { @Override protected void onProgressUpdate(Integer... args) { setProgressPercent(args[0]) } }
其次,我们必须在函数publishProgress上使用doInBackground函数,也就是说,前面的方法将完成所有工作。
protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i < count; i++) { totalSize += Downloader.downloadFile(urls[i]); publishProgress((int) ((i / (float) count) * 100)); } return totalSize; }