Ciągle słyszę o usługach i odbiornikach . Jaka jest różnica między nimi i jak wpływają one na działanie mojego telefonu z Androidem z mojego punktu widzenia?
Ciągle słyszę o usługach i odbiornikach . Jaka jest różnica między nimi i jak wpływają one na działanie mojego telefonu z Androidem z mojego punktu widzenia?
Odpowiedzi:
Aplikacje na Androida mają trzy rodzaje komponentów. Zasadniczo użytkownicy nie muszą o nich wiedzieć: to sposób, w jaki autorzy aplikacji mogą programować określone zachowania w swoich aplikacjach. Ale jeśli uważnie obserwujesz zachowanie swoich aplikacji, na przykład za pomocą menedżera zadań, lub jeśli automatyzujesz rzeczy za pomocą aplikacji takiej jak Tasker, pomocne jest zrozumienie, jak pasują one do siebie w systemie.
Aktywność jest najbardziej znanym rodzajem komponent: to okno można zobaczyć: albo na pełnym ekranie lub w oknie dialogowym wielkości. Aktywność działa tylko wtedy, gdy jest wyświetlana na ekranie. Po opuszczeniu aktywności system Android utrzyma tę aplikację w pamięci, aby była gotowa do ponownego uruchomienia, ale aktywność nie będzie działać, co oznacza, że nie będzie korzystać z baterii ani sieci. Aplikacja rozpoczyna działanie z zamiarem . Zamiarem może być jawne określenie, które działanie należy uruchomić, lub może określić akcję do wykonania (na przykład otwarcie określonego pliku). Jeśli więcej niż jedno działanie może „obsłużyć” zamiar, zobaczysz okno dialogowe z prośbą o wybranie jednego.
Usługa jest inny komponent aplikacji. Gdy inny składnik (być może działanie lub inna usługa) uruchomi usługę, działa w tle, dopóki się nie zatrzyma. Oznacza to, że usługa może utrzymywać telefon w stanie uśpienia (korzystanie z blokady budzenia ), rozładowywanie baterii lub używanie dużej ilości danych sieciowych, bez pokazywania niczego na ekranie.
Aplikacje mogą korzystać z usług w celu wykonywania długotrwałych procesów w tle, takich jak pobieranie plików z serwera, sprawdzanie poczty e-mail lub sprawdzanie lokalizacji. Chociaż usługi nie pojawiają się ani nie łączą się z tobą bezpośrednio, nadal pojawiają się na liście „Uruchamianie aplikacji”. Z aplikacji Ustawienia wybierz Aplikacje lub Menedżer aplikacji , a następnie Uruchom . Możesz zatrzymać usługę w ten sposób, ale zwykle nie jest to konieczne. Ponieważ usługi nie są bezpośrednio widoczne, system Android uważa je za mniej ważne niż działania, dlatego zostaną zabici jako pierwsi, gdy telefon będzie potrzebował więcej pamięci.
Odbiorniki rozgłoszeniowe to trzeci rodzaj komponentu. Podobnie jak usługi, istnieją tylko w tle i nie komunikują się z tobą bezpośrednio. Ale w przeciwieństwie do usług, nie mogą pozostać uruchomione ani wykonywać długich zadań: istnieją po to, aby reagować na zdarzenia. I w przeciwieństwie do działań i usług, można uruchomić więcej niż jeden odbiornik za jednym razem.
Składnik transmituje zamiar, być może do jednej aplikacji, ale częściej bez określania konkretnej aplikacji. W takim przypadku zamiar zwykle oznacza zdarzenie, które się wydarzyło, na przykład rozładowanie akumulatora. System wyszukuje wszystkie odbiorniki radiowe, które zgłosiły zainteresowanie (za pomocą filtru celowego ), i uruchamia kolejno każdy z nich. Każdy odbiornik rozgłoszeniowy może natychmiast zareagować, na przykład tworząc powiadomienie lub może uruchomić usługę lub działanie w celu podjęcia dalszych działań. Gdy tylko odbiornik transmisji obsłuży zdarzenie, zostanie ono zatrzymane i nie uruchomi się ponownie, dopóki nie zostanie nadane inne podobne zdarzenie.
Przykładem wszystkich trzech składników współpracujących ze sobą jest pobranie aplikacji z Google Play. Po pierwsze, aktywność w Google Play zapewnia interfejs wizualny umożliwiający wybranie treści do pobrania. Lista aplikacji może stanowić jedno działanie; kliknięcie przycisku „zainstaluj” uruchamia inną czynność, aby wyświetlić okno dialogowe potwierdzenia lub płatności. Po potwierdzeniu aktywność okna dialogowego uruchamia usługę. Usługa będzie nadal pobierać zawartość, nawet gdy działanie zakończy się i nie będzie już działać.
Ale być może telefon traci połączenie z Internetem podczas pobierania nowej aplikacji. Jeśli tak się stanie, usługa pobierania Google Play zarejestruje odbiornik, z filtrem celowym, który mówi, że jest zainteresowany zmianami łączności sieciowej, a następnie usługa się zatrzyma. Gdy telefon łączy się z Internetem, system emituje zdarzenie. Android uruchomi nadawcę zarejestrowanego w usłudze Google Play wraz z każdym innym odbiornikiem nadawczym czekającym na to wydarzenie. W takim przypadku odbiornik ponownie uruchomi usługę pobierania. Usługa będzie tworzyć powiadomienia w trakcie pobierania, a gdy zakończy się, wyśle własną transmisję, aby poinformować inne aplikacje, że nowy pakiet został zainstalowany, a następnie zatrzyma się. To z kolei uruchomi odbiorniki z innych aplikacji,
W podsumowaniu:-