我试图将多个文件从我的服务器下载到我的设备。
以下是我所做的:
活动
...
Intent intent = new Intent(this, DownloadService.class);
intent.putExtra(DownloadService.URL, url);
startService(intent);
DownloadService类
public class DownloadService extends IntentService {
...
@Override
protected void onHandleIntent(final Intent intent) {
new Thread(new Runnable() {
@Override
public void run() {
// Download code...
}
}).start();
}
我的 IntentService 可以从任何活动多次启动(例如我想下载file0,file1,...,fileN):那个' s为什么我在 onHandleIntent 中使用主题,以便单独下载。
这是我的问题:如何取消/中断从IntentService启动的特定线程的下载?下载过程中没有UI更新,但只有带进度条的通知,当然是从Thread更新。
文件的大小可以是1GB,我试图撤消此下载。
编辑1:
DownloadManager 非常有用,我知道,但我的文件由多个子文件组成,这些子文件在运行时由服务器逐个创建。我已经尝试过这种方式,但这不是我想要的。
答案 0 :(得分:0)
最后我设法解决了我的问题。
正如@CommonsWare所建议的那样(再次感谢!)我创建了一个Service
而不是IntentService
,并且我通过{{每次调用的特定类中的ThreadPoolExecutor
来管理我的多个线程1}}。
长话短说:我跟着this Google guide,我受到ThreadSample项目的启发。