2010-12-17 12 views
6

Pracuję nad aplikacją dla systemu Android, która będzie działać jako usługa przez większość czasu. Użytkownik może kontrolować go za pomocą paska stanu - w tym możliwość całkowitego zatrzymania usługi.Dodawanie przycisków powyżej karty Powiadomienia na pasku stanu

Mimo że jestem w stanie stworzyć niestandardowy widok i umieścić przyciski w obszarze powiadomień [patrz rysunek 1], chciałbym móc umieścić go nad nazwą "Android"/Usługodawcy. Podobnie jest w przypadku aplikacji Music Player [patrz rysunek 2]. W ten sposób, nawet jeśli użytkownik usunie swoje powiadomienia, panel sterowania mojej aplikacji pozostanie aktywny, dopóki usługa będzie działać.

Jaki jest najlepszy sposób, aby to zrobić?

Figures 1 and 2

Original Image Link

+0

Wymyśliłem sposób dodania flagi ONGOING_EVENT za pośrednictwem powiadomienia.flags = notification.flags | notification.FLAG_ONGOING_EVENT; Ale nadal zastanawiam się, w jaki sposób aplikacja Media Player rozwiązuje ten problem bez bieżącej flagi? – DJiK

+0

Czy to jest domyślny odtwarzacz muzyki na Androida, mówisz abt? – Shardul

+0

Odtwarzacz muzyki na rysunku 2 został dostarczony z ROMem, którego używam; więc tak. Wygląda na to, że domyślny odtwarzacz MP3 na emulatorze używa również FLAG_ONGOING_EVENT (patrz: http://i.imgur.com/mGJnN.png). Prawdopodobnie na tym poprzestanę ... – DJiK

Odpowiedz

1

ROM został ukryty nagłówek Ongoing; zarówno odtwarzacz muzyczny, jak i widżet sterowania sprzętem używają flagi ONGOING_EVENT, aby pozostać tam, gdzie są (ktoś mnie poprawi, jeśli się mylę). Potwierdź to, ładując aplikację na naprawiony telefon - nazwa documentation oznacza np. Odtwarzacze muzyki (i inne czasy, w których twój proces wciąż trwa w tle) są czasem, kiedy powinieneś używać tej flagi.

Może chcesz zauważyć, że ta sama strona zaleca flagę FLAG_NO_CLEAR - jeśli chcesz, aby nie została wyczyszczona, gdy użytkownik kliknie clear notifications (jest to zalecane w przypadku bieżących aplikacji).

Powiązane problemy