【发布时间】:2010-09-14 20:45:18
【问题描述】:
我正在尝试对状态栏中的图标状态进行一些控制。我希望能够做到以下几点:
- 保留图标 在状态栏中可见,只要 在应用运行时,即使用户选择清除状态栏。
- 从状态栏中清除图标 如果应用程序退出,即使(尤其是)它被杀死?我意识到当应用程序显式退出时我可以将其删除,但我想确保如果应用程序被终止它会消失。我不得不承认我还没有尝试过。
我无法获得有关这方面的一些好的信息,尽管我已经看到似乎正在这样做的应用程序。
【问题讨论】:
我正在尝试对状态栏中的图标状态进行一些控制。我希望能够做到以下几点:
我无法获得有关这方面的一些好的信息,尽管我已经看到似乎正在这样做的应用程序。
【问题讨论】:
1) 查看status bar notifications 上的开发者文档页面。另请注意,您需要查看 FLAG_NO_CLEAR 常量,它应该涵盖您的情况。
2) 在应用被杀死的情况下,保留图标不一定是坏事,并且在某种程度上取决于应用的目的。特别是,如果您的应用程序进入后台然后被杀死,leaving the icon has actually been noted to be expected behavior by one of Google's engineers:
正确,onDestroy() 没有被调用 当它被杀死时。这是一样的 作为活动——内核杀死 在需要时处理,而不是等待 应用程序。
状态栏正确保持 图标。该服务稍后将 重新启动;它没有停止。
后台服务正常 定期被杀。这是 故意的,因为通常 后台服务不是什么东西 用户直接知道,并且 时不时重启他们的进程 然后避免此类问题 服务消费量增加 内存。
如果您的服务是用户 实际上是意识到(如音乐 播放),考虑 Service.startForeground().
话虽如此,该图标可能还是应该消失。如果您使用任务管理器杀死其他具有持久图标的应用程序(想到 Meebo),它们将被清除。不过,我不确定这是否在所有情况下都会发生。如果您的应用在后台被 OOM 杀死,那么您很可能无论如何都不想清除它。
【讨论】:
onDestroy()。不过,这是一个以前在邮件列表中出现过的话题。不妨先看看这里:mail-archive.com/android-developers@googlegroups.com/…
【讨论】: