1) Zajrzyj na stronę z dokumentami dla programistów pod numerem status bar notifications. Zwróć też uwagę, że warto przyjrzeć się stałej FLAG_NO_CLEAR, która powinna uwzględniać twój stan.
2) Utrzymywanie ikony niekoniecznie jest złą rzeczą w przypadku, gdy aplikacja jest zabijana, i w pewnym stopniu zależy od celu aplikacji. W szczególności, jeśli aplikacja przechodzi w tle, a potem ginie, leaving the icon has actually been noted to be expected behavior by one of Google's engineers:
Prawidłowe, onDestroy() nie jest wywoływana kiedy zostanie zabity. Jest to ta sama aktywność co - jądro zabija procesy w razie potrzeby, nie czekając na aplikację w trybie 0-.
Pasek stanu prawidłowo trzyma ikonę . Usługa zostanie ponownie uruchomiona: ; to nie zostało zatrzymane.
To normalne, że usługi w tle są regularnie zabijane. To zamierzone, ponieważ generalnie usługi działające w tle nie są czymś użytkownik jest bezpośrednio świadomi i ponownego uruchamiania procesów każdy teraz a następnie unika problemów z takimi usługi spożywania coraz większych ilości RAM.
Jeśli usługa jest czymś użytkownik jest rzeczywiście świadomi (takich jak muzyka odtwarzania), należy rozważyć Service.startForeground().
Mimo to ikona powinna i tak zniknąć. Inne aplikacje z trwałymi ikonami (Meebo przychodzi na myśl) znikną, jeśli zabijesz ich za pomocą menedżera zadań. Nie jestem jednak pewien, czy tak się stanie we wszystkich przypadkach. Jeśli twoja aplikacja zostanie zabita w tle przez OOM, najprawdopodobniej nie będziesz chciał jej usunąć.
FLAG_NO_CLEAR działa zgodnie z oczekiwaniami, powinienem był to złapać, dzięki! Z jakiegoś powodu pasek stanu nie jest czyszczony, gdy zabijam aplikację.Zasadniczo chcę, aby ikona paska stanu wskazała, czy aplikacja faktycznie działa, czy też nie, więc chcę ją wyczyścić, jeśli zostanie zatrzymana z jakiegokolwiek powodu. Oczywiście onDestroy() usuwam, ale nie ustąpi, gdy aplikacja zostanie zabita lub Force Closes. – KMP14
Nie jestem pewien, jak radzą sobie z tym inne aplikacje, ponieważ 'onDestroy()' nie jest wywoływana, gdy aplikacja jest zamykana lub ulega awarii. Jest to jednak temat, który pojawił się wcześniej na listach mailingowych. Może zacznij od przyjrzenia się tutaj: http://www.mail-archive.com/[email protected]/msg59044.html – eldarerathis