【发布时间】:2015-07-04 14:12:46
【问题描述】:
我创建了一个服务,我从我的主要活动中调用它来将文件同步到服务器。当服务被调用时,我调用`new FileList().execute();它提供了用于上传和下载的文件列表。在这个 asynctask 的 postexecute 中,我调用了另外两个 asynctasks 来上传和下载
for (int i = 0; i < files_server.size(); i++) {
filename=files_server.get(i);
new DownloadFileFromURL().execute(file_url+files_server.get(i));
try {
thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for (int j = 0; j < files_phone.size(); j++) {
filePath=files_phone.get(j);
new UploadFileToServer().execute();
try {
thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
服务的onStartcommand代码是
new FileList().execute();
try {
thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} Toast.LENGTH_SHORT).show();
stopSelf();
return mStartMode;
代码运行良好,但由于我是 android 新手,我找不到不一起创建这么多异步任务的方法,所以我添加了延迟,这不是一个合适的解决方案。帮助我了解如何执行此操作以及服务是否是一个不错的选择以及像这样停止服务是否可以?
【问题讨论】:
标签: android service android-asynctask sync