将下载进度条从 AsyncTask 更新到通知区域

2024-04-30

我已将异步任务实现到服务中。这是我正在调用的进度通知的初始化onPreExecute.

mProgressNotificationManager = (NotificationManager) this
            .getSystemService(Context.NOTIFICATION_SERVICE);

    CharSequence tickerText = "Download";

    mProgressNotification = new Notification(R.drawable.ic_launcher, tickerText, System.currentTimeMillis());
    context = this.getApplicationContext();

    Intent mNotificationIntent = new Intent(context, ActivityClass.class);
    PendingIntent mPendingIntent = PendingIntent.getActivity(context, 0, mNotificationIntent, 0);
    //mProgressNotification.flags |= Notification.FLAG_AUTO_CANCEL;
    mProgressNotification.flags = mProgressNotification.flags | Notification.FLAG_ONGOING_EVENT;
    CharSequence title = "Downloading initializing...";
    RemoteViews contentView = new RemoteViews(getPackageName(),
            R.layout.noti);
    contentView.setImageViewResource(R.id.status_icon,
            R.drawable.ic_launcher);
    contentView.setTextViewText(R.id.status_text, title);
    contentView.setProgressBar(R.id.status_progress, 100, 0, false);
    mProgressNotification.contentView = contentView;
    mProgressNotification.contentIntent = mPendingIntent;
    mProgressNotificationManager.notify(STATUS_BAR_NOTIFICATION, mProgressNotification);

之后在doInBackground,我已经实现了我的下载程序,之后我正在更新下载进度,

@Override
    protected void onProgressUpdate(Integer... progress) {
        super.onProgressUpdate(progress);

        int mDownloadProgress = progress[0];
        // Log.d(TAG,"AsyncTask : download In progress");           
        CharSequence title =  "fileName" +":  "  + mDownloadProgress + "%";
        mProgressNotification.contentView.setTextViewText(R.id.status_text, title);
        mProgressNotification.contentView.setProgressBar(R.id.status_progress, 100,
                mDownloadProgress, false);
        mProgressNotificationManager.notify(STATUS_BAR_NOTIFICATION, mProgressNotification);            

    }

它工作正常..更新正常,但问题是,通知栏被挂起。我无法上下通知栏。我想更新通知栏,就像从 Google 市场(Play)下载任何应用程序一样。

谢谢...


似乎发生的情况是您正在替换通知,这意味着有新的通知要显示。

您需要做的是更新通知而不是替换它。

看看这个:)

http://developer.android.com/guide/topics/ui/notifiers/notifications.html#Updating http://developer.android.com/guide/topics/ui/notifiers/notifications.html#Updating

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将下载进度条从 AsyncTask 更新到通知区域 的相关文章

随机推荐

  • 为什么我的 PlayFramework 应用程序出现很长的超时?

    我已经创建了一个工作应用程序 但有时当我更改内容并点击浏览器中的 重新加载 按钮时 该应用程序会永远超时 300000 毫秒或5分钟 之后我在浏览器中得到以下异常 java util concurrent TimeoutException
  • 分段错误(核心转储),执行线程

    我试图在 python 中运行一个程序 该程序打开一个程序并从其标准输出中读取 当我运行程序代码时 出现分段错误错误 但是当我将代码放入函数 Myfunc 中的线程外时 它可以正常工作 我不明白发生了什么 这是我的代码 class Work
  • 在 R Markdown 文件中嵌入 pdf 并调整分页

    我即将完成博士学位 我需要在 R Markdown 文本中间的某个位置嵌入一些论文 pdf 格式 将 R Markdown 转换为 PDF 时 我希望将这些 PDF 论文嵌入到转换中 但是 我希望这些 PDF 论文也根据 Markdown
  • 获取通过discord.js选项传递的值

    const data new SlashCommandBuilder gt command setName info setDescription addStringOption option gt option setName steam
  • JavaFX 使用动画最小化和最大化未装饰的舞台

    我在这个问题中使用已接受的答案 JavaFX 最小化未修饰的阶段 https stackoverflow com questions 26972683 javafx minimizing undecorated stage正确最小化我的应用
  • 使用 CustomCallback() 类在训练时实现冻结层

    我正在尝试在 TensorFlow 中训练自定义 CNN 模型 我想以某种方式在训练仍在运行时冻结特定时期模型的某些层 我已经实现了冻结层 但我必须在某些时期训练模型 然后在我想要冻结的特定层中将可训练属性更改为 False 然后编译模型
  • HTML/CSS/JS:如何强制浏览器保存非“密码”类型输入的密码?

    问题是我有两个类似于用户名和密码的值 但实际上是用户用来登录我创建的网站的 2 个随机生成的 GUID 它们并不是真正的用户名和密码 而是我尝试的 GUID来复制这个组合 通常 浏览器在看到元素的 type password 属性时会询问您
  • Qt QML ComboBox 覆盖滚轮事件

    有没有办法覆盖 ComboBox MouseArea 以忽略滚轮事件而不是更改当前索引 ComboBox 本身没有选项可以更改滚轮焦点行为 到目前为止 我尝试使用如下代码覆盖 CB MouseArea 的 onWheel ComboBox
  • 使用外部属性文件执行 jar

    我有一个带有主类的 jar 可以像这样执行 java jar test jar 罐子里有类似的东西 public static void main String args throws IOException InputStream is
  • Python opencv排序轮廓[重复]

    这个问题在这里已经有答案了 我正在关注这个问题 如何从左到右 从上到下对轮廓进行排序 https stackoverflow com questions 38654302 how can i sort contours from left
  • Kong - 验证上游 ssl(ssl_proxy 打开)

    我已经成功为 API 安装了 kong 网关 该 API 通过上游负载平衡到多个目标 应用程序服务器 现在 我有一个我的应用程序服务器的自签名证书 kong 和目标之间的 ssl 握手应该失败 我推断 kong 不验证上游证书 经过一些研究
  • JSDoc 这就是将 @typedef 标记为 @global 的方式吗?

    只需确保在我们的节点服务器的模块中这是能够使用的正确方法 typedef整个应用程序 而不是在每个需要的模块 文件中重复它 从文档中我无法确定这是否正确 并且是否有人对存储全局 typedefs 有意见 以便在整个应用程序中使用时很容易找到
  • 带有 unicode 键的字典

    Python 中是否可以使用 Unicode 字符作为字典的键 我使用 Unicode 中的西里尔字母作为键 当尝试通过键获取值时 我得到以下回溯 Traceback most recent call last File baseCreat
  • 如何解析不可预测地散布到字符串中的 JSON?

    假设我有一个 node js 应用程序 它以一种奇怪的格式接收输入 带有任意散布在其中的 JSON 的字符串 如下所示 This is a string with json in it followed by more text and s
  • AsyncTask,doInBackground永远不会在android中运行

    当我尝试启动 doinbackground 来等待传入消息时 它从未真正运行过 只是跳过它 public class Incomingdata extends AsyncTask
  • 将对象解构为数组

    我有这个对象 const foo a kitten b puppy c lion 将其解构为变量就像这样 const a b c foo 是否有一个简单的方法如何将其解构为数组 以便结果是 const array a b c 据我所知 没有
  • Powershell调用cmd.exe命令,如copy /b

    我已经看到这个了在 Powershell 中快速且简单地连接二进制文件 https stackoverflow com questions 1783554 fast and simple binary concatenate files i
  • gcovr 和 Xcode 5 的代码覆盖率不起作用

    我正在使用 gcovr 生成 cobertura 的代码覆盖率 xcode 4 6 一切正常 现在我更新到了 xcode5 我得到的一切都是 0 覆盖率 我的设置 全球冠状病毒3 0 Xcode 5 苹果 LLVM 5 生成测试覆盖率文件
  • 从存储桶中删除文件。 Autodesk-forge

    从 wip dm prod 存储桶中删除文件时出现问题 errorCode AUTH 012 但我可以使用 x GET 而不是 x DELETE 下载当前文件 我使用这个教程 gt https developer autodesk com
  • 将下载进度条从 AsyncTask 更新到通知区域

    我已将异步任务实现到服务中 这是我正在调用的进度通知的初始化onPreExecute mProgressNotificationManager NotificationManager this getSystemService Contex