【问题标题】:Launching my activity on clicking on download notification在点击下载通知时启动我的活动
【发布时间】:2020-06-17 22:52:37
【问题描述】:

我有一个应用程序请求 DownloadManager 开始下载。

我想要做的是在用户单击我的应用程序从 DownloadManager 请求下载的下载通知时启动我的应用程序。下面是 BroadcastReceiver 中用于 DownloadManager 广播的代码。

if (DownloadManager.ACTION_NOTIFICATION_CLICKED.equals(action))
        {
            long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
            long dlRef = getDlRef();
            if (downloadId != dlRef) {
                Log.d(Constants.TAG, "MY_DL_ID: " + dlRef + " EVENT FOR: " + downloadId);
            } else {
                Log.d(Constants.TAG, "Starting my activity");
                Intent i = new Intent(context, MyActivity.class);
                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(i);
            }
        }

我该怎么做?在上面的代码中,我将 downloadId 设为 0。

谢谢,

维奈

【问题讨论】:

  • 你是什么意思?显示通知并单击它会启动活动?阅读:Notifications

标签: android android-download-manager download-manager


【解决方案1】:

你想使用:

intent.getLongArrayExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS)

返回一个长数组。

【讨论】:

    【解决方案2】:

    开始下载后,您只需将应用程序启动为:Intent launchint = getPackageManager().getLaunchIntentForPackage("com.package.yourapp"); startActivity(launchint );

    【讨论】:

    • 我想从下载通知启动我的应用程序,该通知在 DownloadManager 开始我的应用程序请求的下载时显示。
    • 尽管我无法完全理解您想要实现的目标,但您可以创建待处理的 Intent。您可以使用要启动的类创建一个意图,创建一个挂起的意图,然后将内容Intent 设置为该挂起的意图。 developer.android.com/training/notify-user/… 将为您提供更多帮助。
    • 当我们使用 DownloadManager 下载时会显示通知。我想要的是当它被点击时它会启动我的应用程序。上面的代码显示了单击此类通知时收到的 Intent 操作。但在这种情况下,下载 ID 不可用。因此,如果我发出从这里启动活动的意图,它是否会启动我的所有下载活动,而我没有开始?我想避免使用我自己的通知,因此我的查询!我希望我的问题现在有点清楚了:)
    猜你喜欢
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    相关资源
    最近更新 更多