2011-01-16 14 views
13

Wiem, że niektórzy ludzie uważają, że nie należy tworzyć trwałych usług.Utrwalona usługa

Ale dla tych z nas, którzy chcą zwiększyć naszą wiedzę, jak można ją stworzyć w teorii?

Bawiłem się i zauważyłem, że usługi korzystające z startForeground są zabijane w sytuacjach z małą ilością pamięci.

Widziałem, teraz przestarzałe, pozwolenie PERSISTENT_ACTIVITY, ale to niewiele.

Więc jaki jest sekret?

Odpowiedz

40

Możesz utrwalić swoją usługę tylko wtedy, gdy tworzysz aplikacje systemowe. Usługi te będą w zasadzie niemożliwe do usunięcia i będą oznaczone jako "PERS" w wynikach polecenia "adb shell dumpsys activity". Nie jest to dobrze udokumentowane, więc zrobiłem szybkie notowanie na Persistent services in Android ... mam nadzieję, że pomoże to niektórym osobom.

Ale dla aplikacji niesystemowych, startForeground to najlepsza opcja.

+3

Dziękuję za to - od wielu dni szukam rozwiązania - dobrze wiedzieć, że na StackOverflow są ludzie, którzy wiedzą, że są tam deweloperzy aplikacji systemowych. –

+0

Uwaga dodatkowa: Flaga trwałości działa idealnie - usługa NIGDY nie jest zabijana, nawet gdy urządzenie ma poważnie mało zasobów. –

+0

Istnieje błąd w KitKat 4.4.2, który zatrzymuje usługi bez uprzedzenia, jeśli Google kontynuuje ten błąd, powinniśmy ustawić Widgety aplikacji na Trwałe – AVEbrahimi

-5

Nie ma absolutnie żadnego sposobu, aby zabezpieczyć system operacyjny przed zabiciem usługi.

+0

Widzisz, nie jestem w 100% pewien, czy to prawda, kiedy wykonuję "aktywność adb shell dumpsys" Widzę niektóre usługi oznaczone jako PERS ... Zakładam, że są trwałe ... jak to się stało etykieta? – ekawas

+0

Czy wiesz nawet, co oznacza ta etykieta? Android może dowolnie zabijać w dowolnym momencie. Niektóre rzeczy mają wyższy priorytet niż inne, ale nie można temu zapobiec. Jaka jest twoja usługa, próbując to zrobić, że uważasz, że tak ważne jest, aby pozostać w pobliżu? – Falmarri

+0

Nie jestem więc pewien, co oznacza ta etykieta, dlatego napisałem, że "zakładam", że oznacza ona trwałą. Co więc robią usługi odtwarzające muzykę? Czy ryzykują przypadkowym wyłączeniem? Przypuszczam, że to wydarzenie tła, prawda? – ekawas