取消正在执行的AsyncTask的理想方法我在后台线程中运行远程音频文件获取和音频文件回放操作。AsyncTask..一个Cancellable在FETCH操作运行时显示进度条。我想取消/中止AsyncTask当用户取消(决定反对)操作时运行。处理这类案件的理想方法是什么?
3 回答
萧十郎
TA贡献1815条经验 获得超13个赞
如果你在计算:
你得检查一下 isCancelled()周期性的。
如果您正在执行HTTP请求:
保存 HttpGet或 HttpPost某处(如:(公共领域)。 打电话后 cancel,打电话 request.abort()..这将导致 IOException被扔进你的 doInBackground.
abortAllRequestscancel.
郎朗坤
TA贡献1921条经验 获得超9个赞
private class UpdateTask extends AsyncTask<Void, Void, Void> {
private boolean running = true;
@Override
protected void onCancelled() {
running = false;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
onUpdate();
}
@Override
protected Void doInBackground(Void... params) {
while(running) {
publishProgress();
}
return null;
}
}- 3 回答
- 0 关注
- 712 浏览
添加回答
举报
0/150
提交
取消
