Jeśli masz aplikację, którą chcesz uruchomić w tle, musisz zrobić kilka rzeczy. Po pierwsze, musisz upewnić się, że Twoja aplikacja nie zużywa zasobów systemowych lub nie zajmuje zbyt dużo pamięci. Musisz również rozważyć wpływ pozwolenia na działanie w tle na żywotność baterii.
Kiedy aplikacja przechodzi z pierwszego planu na drugi, system kończy jej działanie, aby zwolnić wszelkie współdzielone zasoby, które trzymała (na przykład aparat fotograficzny lub współdzieloną bazę danych). Musisz jednak zwolnić te zasoby przed przejściem aplikacji na drugi plan, aby nie zużywała ich ponownie po powrocie na pierwszy plan.
Może to być szczególnie ważne, gdy aplikacja przechowuje dane, które są dostępne dla innych aplikacji, jak obrazy i nazwane obiekty. Najlepiej jest sprawdzić z frameworkiem, który obsługuje zasób, do którego aplikacja ma dostęp, czy istnieją jakieś wytyczne dotyczące tego, co powinieneś zrobić, gdy jest on w tle.
Pierwszym krokiem jest stworzenie usługi, która będzie obsługiwała żądania pracy Twojej aplikacji, gdy będzie ona w tle. Aby to zrobić, musisz utworzyć klasę IntentService, a następnie wysyłać do niej żądania pracy za pomocą obiektu Intent.
Gdy masz już swoją klasę IntentService, możesz dodać do swojej aplikacji metodę, która wywoła usługę, gdy zostanie do niej wysłane żądanie. Metoda powinna być wywoływana z obiektem Intent, aby wskazać rodzaj pracy, której wymaga żądanie.
Możesz to zrobić za pomocą kilku linii kodu w swojej klasie Application. Musisz dodać nową metodę o nazwie onHandleIntent(), a następnie wysłać callback do usługi, gdy obiekt Intent zostanie odebrany.
Następnie musisz zmodyfikować swój IntentService tak, aby był w stanie odbierać wiele żądań w tym samym czasie. Na przykład, jeśli chcesz otrzymać powiadomienie o zdarzeniu na urządzeniu, gdy usługa działa w tle, dodaj metodę, która przyjmie obiekt Intent z określoną flagą wskazującą rodzaj pracy, której dotyczy żądanie.
Na koniec musisz usunąć wszelkie wrażliwe informacje z obiektu Intent, aby nie zostały zapisane w archiwum konserwacyjnym twojej aplikacji, gdy jest ona w tle. Zapobiegnie to zapisywaniu przez twoją aplikację wrażliwych informacji na urządzeniu, które jest w trakcie przywracania ustawień fabrycznych lub wymazywania.
Może to być szczególnie trudne w przypadku systemu Android, ponieważ możliwe jest, że Twoja aplikacja zużywa dużą ilość pamięci, gdy jest w tle. Może to powodować problemy z wydajnością Twojej aplikacji, zwłaszcza jeśli jest to gra lub odtwarzacz multimedialny, który stale zużywa pamięć RAM.
Jeśli masz aplikację, która nie musi działać w tle, możesz ją wyłączyć, przechodząc do Ustawienia > Aplikacje. Wybierz aplikację, którą chcesz zatrzymać, a następnie kliknij przycisk Force Stop. Spowoduje to trwałe zatrzymanie aplikacji z ponownego uruchomienia po ponownym uruchomieniu telefonu. Możesz również użyć przycisku Odinstaluj, aby usunąć go z systemu na zawsze.
Podobne tematy