You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中WebView应用实现下载完成带确定按钮的弹窗

解决方案

要实现下载完成后的弹窗提示,你需要通过**广播接收器(BroadcastReceiver)**监听DownloadManager的下载完成事件,然后在接收器中触发弹窗。下面是具体步骤:

1. 创建广播接收器监听下载完成

首先定义一个内部广播接收器,用来接收下载完成的广播,并弹出提示弹窗:

private BroadcastReceiver downloadCompleteReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // 检查是否是DownloadManager的下载完成广播
        if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(intent.getAction())) {
            // 弹出提示弹窗
            new AlertDialog.Builder(context)
                .setTitle("提示")
                .setMessage("Download Completed")
                .setPositiveButton("确定", (dialog, which) -> dialog.dismiss())
                .show();
        }
    }
};

2. 注册广播接收器

在你的Activity的onCreate方法中注册这个广播接收器,确保能接收到下载完成的通知:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_activity_layout);
    
    // 注册广播接收器
    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    registerReceiver(downloadCompleteReceiver, filter);
    
    // 你的其他初始化代码...
}

3. 注销广播接收器

为了避免内存泄漏,一定要在Activity销毁时注销广播接收器:

@Override
protected void onDestroy() {
    super.onDestroy();
    // 注销广播接收器
    unregisterReceiver(downloadCompleteReceiver);
}

4. 可选:验证特定下载任务(避免触发无关下载的弹窗)

如果你希望弹窗只针对你发起的这个图片下载任务,可以保存manager.enqueue(request)返回的下载ID,然后在广播接收器中对比:

// 在发起下载时保存ID
long myDownloadId = manager.enqueue(request);

// 在广播接收器中验证
long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
if (downloadId == myDownloadId) {
    // 只处理我们的下载任务
    new AlertDialog.Builder(context)
        .setTitle("提示")
        .setMessage("Download Completed")
        .setPositiveButton("确定", (dialog, which) -> dialog.dismiss())
        .show();
}

注意事项

  • 如果你是在Fragment中实现,记得用requireContext()获取上下文,避免内存泄漏。
  • 对于Android 10及以上版本,你的代码中使用Environment.DIRECTORY_DOWNLOADS是不需要额外存储权限的,这部分没问题。

内容的提问来源于stack exchange,提问作者Chand Ninder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:24:49