Android Service.startForeground 不尊重通知 ID 的唯一性

2023-11-24

Service.startForeground() vs 通知管理器.notify(),给出不同的行为。

使用时notify使用两个不同的通知 ID,创建 2 个通知 -Good.

当做同样的事情时启动前台,一个通知会覆盖另一个通知 -Bad.

测试设备:Nexus S(2.3.6) 和 Asus Transformer (4.0.3)。

有什么想法可以运行可以有多个(动态数字)通知的重要(前台)服务吗?


嗯,这不是最好的解决方案,但您始终可以将通知“重新分配”到已取消的通知 ID。例如,假设您启动进程 1(前台),然后启动进程 2(使用NotificationManager)。当进程 1 结束时,关闭进程 2 的通知并更新进程 1 的前台通知,以实际显示进程 2 的进度。

这样你就不用打电话了stopForeground() and startForeground(),这可能允许服务在两者之间被终止(尽管尚未实际检查这是真的)。

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

Android Service.startForeground 不尊重通知 ID 的唯一性 的相关文章

随机推荐

  • Firebase 实例 ID 和令牌的范围

    我读过很多关于Firebase Instance Id and registration token here here and here 我对他们有些困惑范围和关系之间Instance Id and Token 我想验证一下我的理解是正确
  • 如何在我在 github.com 上分叉的项目之上重新播放本地 Git 存储库的提交?

    是的 我知道我应该从一开始就分叉该项目 但这就是我现在所处的情况 我在本地计算机上有一个本地 Git 存储库 其中包含我的博客 并且有几个月的提交历史记录 最初 我只是从存储库下载了文件http github com mojombo moj
  • 在 CSS 中并排居中放置多个图像

    我是 CSS 和 HTML 的初学者 所以我确信这很混乱 但我想做的是在 CSS 中将 3 个图像并排居中水平居中 我尝试过不同的解决方案 使它们正确对齐 但它们仍然停留在页面的左侧 或者会堆叠在一起 有时会重叠 div img src I
  • 可以防止 403 错误记录到 Web 控制台吗?

    我有一些 js html css 在某些情况下会在加载图像时遇到无害的 403 错误 有什么方法可以捕获这些错误并防止它们将错误记录到控制台吗 Thanks 没有 如果服务器响应 200 以外的任何内容 您将在控制台中看到它 您需要在服务器
  • hdfs(namenode)中使用的名称空间和元数据的含义是什么

    作为 hadoop 的初学者 我对命名空间和元数据这两个词感到困惑 这两者之间有什么关系吗 根据 Hadoop 权威指南 NameNode 管理文件系统名称空间 它维护文件系统树以及树中所有文件和目录的元数据 本质上 命名空间意味着一个容器
  • 对于大n,如何计算2^n?

    我正在尝试编写一个需要数字的程序 n 作为输入 并输出 2 次方的结果n 问题是 n可以非常大 最多 100 000 本质上 我正在尝试计算pow 2 n 对于非常大的数字 我认为做到这一点的方法是将数字存储在数组中 因为没有内置的数字类型
  • 如何使用 Google Drive API 上传 FILE_URI:插入文件

    在 Android 上 我尝试使用 Google Drive API 插入文件上传 Cordova Phonegap getPicture 的输出 有没有办法使用 FILE URI 而不是 DATA URL base64 来做到这一点 我首
  • 导入 .TLB 文件给出“无法打开源文件 x.tlh”

    我正在将 VS2010 C 项目更新到 VS2019 该项目正在导入多个 tlb 文件 对于每个文件 VS2019 都会给出一个错误 指出 无法打开 tlh 文件的源文件 其中一个来自我也升级过的 DLL 用 C 编写 在 VS2019 中
  • 如何在 ASP.NET 网站项目中使用最新的 VB.NET 语言级别?

    我的任务是对 2009 年开发的 Web 应用程序进行现代化改造 它是用 VB NET 编写的 并使用 ASP NET WebForms 我想使用 VB NET 中最新的语言结构 我得到有用的指示 说 Visual Basic 10 0 不
  • 未捕获的类型错误:对象 [object DOMWindow] 的属性“$”不是函数

    我得到一个 未捕获的类型错误 对象 object DOMWindow 的属性 不是函数我的脚本在 Chrome 中出错
  • “this”关键字如何工作以及何时使用?

    我正在寻找关于 this 关键字的作用以及如何正确使用它的清晰解释 它的行为似乎很奇怪 我不完全明白为什么 如何this工作以及什么时候应该使用它 this是 JavaScript 中的关键字 是执行上下文的属性 它的主要用途是在函数和构造
  • Zend 动作助手

    我正在学习如何使用 Zend 框架 并意识到操作助手是有用的 我已经在我的机器上设置了 Zend 的默认安装 但我不知道帮助程序文件需要放在哪里 我需要在引导程序文件中放入什么以及如何使用它 谁能给我指出正确的方向吗 ZF 用户指南对我来说
  • C# 字符串到十六进制、十六进制到字节的转换

    我有一个方法 它采用十六进制值并将其分配为纯文本 但字节类型是这样的 byte plainText 0xd7 我想从文本框中获取这个值 例如用户将在文本框中键入 d7 我将像这样分配它 byte plaintText 0xd7 我无法做到这
  • 我应该使用我的应用程序重新分发 msvcrt.dll 吗?

    如果应用程序的某些库动态依赖于 msvcrt dll 我是否应该将 msvcrt dll 与我的应用程序一起重新分发并使用私有 dll IE 系统的msvcrt dll dll hell 是否可能存在不兼容问题 应用程序针对 Windows
  • 如何实现顶层异常处理?

    最近 我必须为同事开发的现有服务开发一个附加模块 他在主工作函数中放置了一个 try catch 块 用于捕获所有冒泡到此级别的未处理异常 并将它们与堆栈跟踪信息等记录在一起 try do main work catch Exception
  • PyCUDA:设备代码中的 Pow 尝试使用 std::pow,失败

    问题或多或少说明了一切 calling a host function std pow
  • ValueError:找到具有 0 个样本的数组(形状= (0, 1),而 MinMaxScaler 要求最小值为 1

    我是机器学习的初学者 我正在帮助我的数学专业朋友基于 TensorFlow 创建一个股票预测器 csv他提供的文件 我有一些问题 第一个是他的 csv文件 该文件只有日期和结束值 它们没有分开 因此我必须手动分隔日期和值 我已经成功做到了这
  • ArrayList 的不安全或未经检查的操作

    我被指派编写一个程序 获取 100 个 0 25 之间的随机整数并将它们存储在一个数组中 然后我必须调用两种方法来分割偶数和赔率 非常典型 所以我尝试了 ArrayList 的东西 我刚刚学会它 它看起来很好 我正在关注教程和在线的东西 直
  • hibernate oracle 标识符太长 ORA-00972

    我被这个问题困扰了 数据库架构是由其他人提供的 因此我不能简单地更改名称 我尝试在各处添加正确的注释 也许我遗漏了一些东西 明显的 这是我的完整映射 相当多的类 我将提交 getter setter 问题是当休眠试图获取所有List
  • Android Service.startForeground 不尊重通知 ID 的唯一性

    Service startForeground vs 通知管理器 notify 给出不同的行为 使用时notify使用两个不同的通知 ID 创建 2 个通知 Good 当做同样的事情时启动前台 一个通知会覆盖另一个通知 Bad 测试设备 N