Jaka jest różnica pomiędzy:
getApplicationContext()
getBasecontext()
getApplication()
getParent()
Czy możesz podać jeden prosty przykład?
android
android-context
Nikunj Patel
źródło
źródło
Odpowiedzi:
getApplicationContext()
Kontekst aplikacji jest powiązany z aplikacją i zawsze będzie taki sam przez cały cykl życia.getBasecontext()
nie powinien być używany, po prostu użyjContext
zamiast niego, co jest związane z działaniem i może zostać zniszczone, gdy działanie zostanie zniszczone.źródło
getApplicationContext () Kontekst aplikacji jest powiązany z aplikacją i zawsze będzie taki sam przez cały cykl życia.
getBasecontext ()Nie należy używać , wystarczy użyć zamiast niego kontekstu, który jest powiązany z działaniem i może zostać zniszczony, gdy działanie zostanie zniszczone.
Funkcja getApplication () jest dostępna tylko dla Aktywności i Usług. Chociaż w obecnych implementacjach działań i usług systemu Android metody getApplication () i getApplicationContext () zwracają ten sam obiekt, nie ma gwarancji, że tak będzie zawsze (na przykład w implementacji określonego dostawcy). Jeśli więc chcesz, aby klasa Application zarejestrowana w Manifeście, nigdy nie wywoływała metody getApplicationContext () i rzutować jej na swoją aplikację, ponieważ może to nie być instancja aplikacji (czego oczywiście doświadczyłeś we frameworku testowym).
getParent () zwraca obiekt działania, jeśli bieżący widok jest podrzędny. Innymi słowy zwraca obiekt działania zawierający widok podrzędny, gdy jest wywoływany w obrębie dziecka.
źródło