android 文件下载管理,Android让下载管理器一次下载一个文件?

我有一个ListView由项目填充。这些项目代表我可以通过点击下载的文件。当我点击一个项目时,启动download manager,并将文件下载到我创建的目录中。Android让下载管理器一次下载一个文件?

正在下载文件时,不确定的progress bar(加载轮)在列表中的相应项目上可见。

我的问题是:因为当他们的物品被点击时(第一个物品点击,第二个物品点击,第五个物品点击等等),我认识到装载轮子(隐藏他们),我不想download manager同时下载多个文件。

例如:如果我点击一个大文件,然后点击列表中的一个小文件,我想在开始下载小文件之前完整下载大文件。

有没有办法做到这一点?

编辑:这里是我的代码

y,z和ld在开始时设置为0。

当被点击的项目:

// Loader of the clicked item is made visible

loader[z].setVisibility(View.VISIBLE);

// Construction of the URL

SharedPreferences codeSaveUrl = getSharedPreferences(PREFS_TEXT,Context.MODE_PRIVATE);

url2 = codeSaveUrl.getString("defaut", ""); // Organization code

uri = url10 + url2 + "&file=" + udl ;

// URL parse to URI

Uri myuri = Uri.parse(uri);

// Enqueue file to downloads, with notification. Storage of download id in a table

lastDownload[ld] = mgr.enqueue(new DownloadManager.Request(myuri)

.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI |DownloadManager.Request.NETWORK_MOBILE)

.setAllowedOverRoaming(false)

.setTitle(udl + ".pdf")

.setDescription("Téléchargement en cours")

.setDestinationInExternalPublicDir("/Protocols/", (udl+".pdf"))

.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE));

// Increment variables for next downloads

ld=ld+1;

z=z+1;

广播接收器:

// Broadcast Receiver called when a download is finished

BroadcastReceiver onComplete = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

// referenceId is the download's id for which the method is called

long referenceId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);

// If y (=0 at the beginning) is inferior to the number of downloads

if(y

// If the id of the download corresponds to the one for which the method is called

if(lastDownload[y] == referenceId){

// We define a cursor depending on the id

Cursor c = mgr.query(new DownloadManager.Query().setFilterById(lastDownload[y]));

if(c.moveToFirst()){

// Download status recovery

int x = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));

switch(x){

// If download is paused, pending or running, we do nothing

case DownloadManager.STATUS_PAUSED:

case DownloadManager.STATUS_PENDING:

case DownloadManager.STATUS_RUNNING:

break;

// If file has successfully been downloaded, loader is hidden

case DownloadManager.STATUS_SUCCESSFUL:

loader[y].setVisibility(View.GONE);

// Increment y to go to next download

y=y+1;

break;

// If download failed, it is retried

case DownloadManager.STATUS_FAILED:

//TODO: retry download

break;

}

}

}

}

}

};

感谢您的帮助。

2014-08-27

MAxeF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值