目前获取下载完 [英] Get Currently finished Download

查看:198
本文介绍了目前获取下载完的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用下载管理器下载文件在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆