我有下面的代码,当点击按钮开始下载文件,但问题是当我多次点击按钮时,它会多次下载同一个文件。如何防止这种情况?我应该添加哪些代码?在哪里?
Button download= (Button)findViewById(R.id.download);
download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String path="http://xxxx.com/sound/ok.mp3";
file_download(path);
}
});
}
public void file_download(String uRl) {
File direct = new File(Environment.getExternalStorageDirectory()
+ "/yebo");
if (!direct.exists()) {
direct.mkdirs();
}
DownloadManager mgr = (DownloadManager) this.getSystemService(Context.DOWNLOAD_SERVICE);
Uri downloadUri = Uri.parse(uRl);
DownloadManager.Request request = new DownloadManager.Request(downloadUri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI
| DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false).setTitle("pic")
.setDescription("Downloading,Please Wait ...")
.setDestinationInExternalPublicDir("/yebo", "mimi.mp3");
mgr.enqueue(request);
}
答案 0 :(得分:1)
使用下面的代码。
public void onClick(View view) {
String path="http://xxxx.com/sound/ok.mp3";
file_download(path);
download.setEnable(false);
}
如果您不想禁用按钮,则可以设置如下标记:
int flag = 0;
public void onClick(View view) {
if(flag == 0)
{ String path="http://xxxx.com/sound/ok.mp3";
file_download(path);
flag += 1;
}
}
答案 1 :(得分:0)
您可以禁用Button
并在完成后重新启用它。例如
final Button download= (Button)findViewById(R.id.download);
@Override
public void onClick(View view) {
download.setEnabled(false);
download.setAlpha(.2f); // grey it out
String path="http://xxxx.com/sound/ok.mp3";
file_download(path);
}