getApplicationContext (), getBaseContext (), getApplication (), getParent ()


Odpowiedzi:


33

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żyj Contextzamiast niego, co jest związane z działaniem i może zostać zniszczone, gdy działanie zostanie zniszczone.


16
a co z getApplication () i getParent ()
Nikunj Patel,

107

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.


16
Jak wspomniałeś, nie powinniśmy używać getBaseContext (), jeśli nie jest to aż tak ważne, to dlaczego jest w kodowaniu i jakie są jego główne zalety. proszę, opowiedz mi o tym
Pir Fahim Shah

getBaseContext () powinno być używane w bardzo specyficznych sytuacjach. Jest tutaj bardzo dobre wyjaśnienie - medium.com/@ali.muzaffar/…
lomza
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.