控制android状态栏图标

KMP*_*P14 5 android statusbar

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

  1. 只要应用程序正在运行,即使用户选择清除状态栏,也可以在状态栏中显示图标.
  2. 如果应用程序退出,则从状态栏中清除图标,即使(特别是)它被杀死了吗?我明白我可以在明确退出应用程序时删除它,但我想确保它在应用程序被杀死时消失.我不得不承认我还没试过.

我还没有得到一些关于这方面的好消息,虽然我看过似乎正在做这个的应用程序.

eld*_*his 4

1) 查看开发者文档页面上的状态栏通知。另请注意,您需要查看FLAG_NO_CLEAR常量,它应该涵盖您的情况。

2)在应用程序被杀死的情况下,保留图标不一定是坏事,并且在某种程度上取决于应用程序的目的。特别是,如果你的应用程序进入后台然后被杀死,谷歌的一位工程师实际上已经注意到留下图标是预期的行为

正确,onDestroy() 被杀死时不会被调用。这与活动相同——内核在需要时杀死进程,而不是等待应用程序。

状态栏正确保留图标。该服务稍后将重新启动;它并没有被阻止。

后台服务定期被杀死是正常的。这是故意的,因为通常后台服务不是用户直接知道的,并且时不时地重新启动它们的进程可以避免此类服务消耗越来越多的 RAM 的问题。

如果您的服务是用户实际知道的(例如音乐播放),请考虑 Service.startForeground()。

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