控制android状态栏图标

时间:2010-09-14 20:45:19

标签: android statusbar

我正在尝试对状态栏中的图标状态进行一点控制。我希望能够做到以下几点:

  1. 保留图标 在状态栏中可见,只要很长时间 当应用程序正在运行时,即使用户选择清除状态栏。
  2. 清除状态栏中的图标 如果应用程序退出,甚至(特别是)如果它被杀死了?我明白我可以在明确退出应用程序时删除它,但我想确保它在应用程序被杀死时消失。我不得不承认我还没试过这个。
  3. 我无法获得有关这方面的一些好消息,尽管我看到的应用似乎正在这样做。

2 个答案:

答案 0 :(得分:4)

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()   当它被杀死。这是一样的   作为活动 - 内核杀死   需要时处理,而不是等待   应用程序。

     

状态栏正确保存   图标。该服务稍后会   重新启动;它还没有停止。

     

后台服务是正常的   经常被杀这是   故意,因为一般   后台服务不是什么东西   用户直接知道,和   现在重新启动他们的进程   然后避免这样的问题   服务消费量增加   RAM。

     

如果您的服务是用户的话   实际上是知道(如音乐   回放),考虑一下   Service.startForeground()。

话虽这么说,图标应该可能会消失。其他具有持久性图标的应用程序(Meebo浮现在脑海中)如果您使用任务管理器杀死它们将会清除。不过,我不确定这是否会在所有情况下发生。如果你的应用程序在OOM的后台被杀,那么你很可能不想清除它。

答案 1 :(得分:2)

  1. http://developer.android.com/reference/android/app/Notification.html#FLAG_NO_CLEAR
  2. 图标会自动删除(至少在我强行杀死手机上的应用时)。