目前获取下载完 [英] Get Currently finished Download
本文介绍了目前获取下载完的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用下载管理器下载文件在Android中,我需要为everydownloaded文件运行一个命令,但是我的接收器不工作,如果我把10files下载,它只是返回最后下载的文件标题IM,为什么呢?
广播接收器接收器=新的广播接收器(){
@覆盖
公共无效的onReceive(上下文的背景下,意图意图){
字符串行动= intent.getAction();
如果(DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(动作)){ 长downloadId = intent.getLongExtra(
DownloadManager.EXTRA_DOWNLOAD_ID,0);
查询查询=新的Query();
query.setFilterById(排队);
光标C = dmAndroid.query(查询);
如果(c.moveToFirst()){
//Log.d(\"ainfo,c.getString(c.getColumnIndex(标题))); - > STIL返回刚刚过去的
/ *
INT I = 0;
而(ⅰ&下; c.getColumnCount()){Log.d(AINFO,
c.getColumnName(I)+ - + I + - + c.getString(ⅰ));
我++; }
* /
INT参数:columnIndex = C
.getColumnIndex(DownloadManager.COLUMN_STATUS); 如果(DownloadManager.STATUS_SUCCESSFUL == c审核
.getInt(参数:columnIndex)){//如果我把这里仍然只返回上次下载
字符串uriString中= C
.getString(三
.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)); 如果(downloadId == c.getInt(0)){
Log.d(AINFO,c.getString(c.getColumnIndex(标题))); //一样,刚刚过去的下载文件标题
}
}
} }
}
};
解决方案
这可能是原因
你有没有在Android清单文件注册您的广播接收器。
你有任何错误在这里发表您的logcat
im using DownloadManager to download files in android, and i need to run a command for everydownloaded file, but my receiver is not working, if i put 10files to download, it just return the LAST downloaded file title, why?
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
long downloadId = intent.getLongExtra(
DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Query query = new Query();
query.setFilterById(enqueue);
Cursor c = dmAndroid.query(query);
if (c.moveToFirst()) {
//Log.d("ainfo", c.getString(c.getColumnIndex("title"))); -> stil return just the last
/*
int i = 0;
while(i < c.getColumnCount()) { Log.d("ainfo",
c.getColumnName(i) + "-" + i + "-" + c.getString(i));
i++; }
*/
int columnIndex = c
.getColumnIndex(DownloadManager.COLUMN_STATUS);
if (DownloadManager.STATUS_SUCCESSFUL == c
.getInt(columnIndex)) {
// if i put here still return the last download only
String uriString = c
.getString(c
.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
if (downloadId == c.getInt(0)) {
Log.d("ainfo", c.getString(c.getColumnIndex("title"))); //same, just the last download file title
}
}
}
}
}
};
解决方案
This may be reasons Did you register your Broadcast Receiver in android manifest file. you got any error here post your logcat
这篇关于目前获取下载完的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文