【发布时间】:2017-04-20 08:47:44
【问题描述】:
我正在使用 Android 下载管理器类。所有下载完成后,我需要写“下载完成”。我已经尝试了一些东西并且它正在工作。但是在这里,它是在逐个文件完成后写入的。我只需要写一次(全部完成后)。我也试过没有光标。但我未能实现。
public class DownloadReceiver extends BroadcastReceiver {
Context context;
@Override
public void onReceive(Context context, Intent intent) {
long receivedID = intent.getLongExtra(
DownloadManager.EXTRA_DOWNLOAD_ID, -1L);
DownloadManager mgr = (DownloadManager)
context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(receivedID);
Cursor cur = mgr.query(query);
int index = cur.getColumnIndex(DownloadManager.COLUMN_STATUS);
if(cur.) {
String filePath = cur.getString(cur.getColumnIndex(DownloadManager.COLUMN_TITLE));
if(cur.getInt(index) == DownloadManager.STATUS_SUCCESSFUL){
DatabaseHandler dh = new DatabaseHandler(context);
dh.addDownloadComplete(new DownloadComplete("Download Complete"));
}
}
cur.close();
}}
【问题讨论】:
-
全部下载完成后是什么意思?您是否有一组下载 ID 要检查它们是否完整,或者您只想检查 DownloadManager 中的每个下载(无论是否来自您的应用程序)是否已完成?
-
我正在从列表中下载文件。在上面的示例中,它一一检查并一一写入下载完成。但我需要的是,下载完所有文件后,我需要写一次下载完成。
标签: android android-download-manager