Mik*_*ike 15 android android-listview android-progressbar android-download-manager
我有一个ListView附加ArrayAdapter.当用户单击下载按钮时,ListView下载开始使用DownloadManager.
我想要做的是使用进度条跟踪下载进度(放置在项目布局中).怎么能实现这一目标?
Pocket Cast的方式是我所追求的:
注意:我知道如何使用它DownloadManager,它是即时更新进度条很棘手.
Mik*_*ike 17
这是我最终解决它的方式(经过多次迭代和不同的实现).这有点棘手,但基本上你需要三件事:
这是我设计和实现它的方式:

我在这里写了更多关于它的详细信息,请参阅github代码以获取完整的文件.
private class UpdaterAsyncTask extends AsyncTask<Void, Void, Void> {
boolean isRunning = true;
public void stop() {
isRunning = false;
}
@Override
protected Void doInBackground(Void... params) {
while (isRunning) {
// Gather data about your adapter objects
// If an object has changed, mark it as dirty
publishProgress();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Void... params) {
super.onProgressUpdate();
// Update only when we're not scrolling, and only for visible views
if (mScrollState == OnScrollListener.SCROLL_STATE_IDLE) {
int start = mListview.getFirstVisiblePosition();
for(int i = start, j = mListview.getLastVisiblePosition(); i<=j; i++) {
View view = mListview.getChildAt(i-start);
if (((Content)mListview.getItemAtPosition(i)).dirty) {
mListview.getAdapter().getView(i, view, mListview); // Tell the adapter to update this view
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12388 次 |
| 最近记录: |