Myślę, że na stronie SDK jest wiele słabo udokumentowanych rzeczy, to jedna z nich. Twierdzę, że zamierzam powiedzieć, że wydaje się, że lepiej jest domyślnie używać kontekstu aplikacji i używać kontekstu aktywności tylko wtedy, gdy naprawdę tego potrzebujesz. Jedynym miejscem, w którym kiedykolwiek widziałem, że potrzebujesz kontekstu aktywności, jest okno dialogowe postępu. SBERG412 twierdzi, że musisz użyć kontekstu działania dla wiadomości toast, ale dokumenty systemu Android wyraźnie pokazują używany kontekst aplikacji. Z tego przykładu Google zawsze korzystałem z kontekstu aplikacji dla tostów. Jeśli to źle, Google upuścił piłkę tutaj.
Oto więcej do przemyślenia i przeglądu:
W przypadku wiadomości Toast Przewodnik Google Dev korzysta z kontekstu aplikacji i wyraźnie mówi, aby go użyć:
Powiadomienia o Toast
W sekcji okien dialogowych przewodnika dla programistów widać, że AlertDialog.Builder używa kontekstu aplikacji, a następnie pasek postępu używa kontekstu aktywności. To nie jest wyjaśnione przez Google.
Dialogi
Wydaje się, że dobrym powodem do korzystania z kontekstu aplikacji jest to, że chcesz obsługiwać zmiany konfiguracji, takie jak zmiana orientacji, i chcesz zachować obiekty, które potrzebują kontekstu, takiego jak Widoki. Jeśli spojrzysz tutaj: Zmiany w czasie
wykonywania Zachowaj ostrożność podczas używania kontekstu aktywności, który może spowodować wyciek. Można tego uniknąć dzięki kontekstowi aplikacji z widokami, które należy zachować (przynajmniej tak rozumiem). W aplikacji, którą piszę, zamierzam użyć kontekstu aplikacji, ponieważ próbuję zachować pewne widoki i inne rzeczy przy zmianie orientacji, a nadal chcę, aby aktywność została zniszczona i odtworzona po zmianie orientacji. Dlatego muszę użyć kontekstu aplikacji, aby nie spowodować wycieku pamięci (patrz Unikanie wycieków pamięci). Wydaje mi się, że istnieje wiele dobrych powodów, aby używać kontekstu aplikacji zamiast kontekstu działania, a dla mnie prawie wydaje się, że używałbyś go częściej niż kontekstu działania. Tak właśnie wydaje się robić wiele książek o Androidzie i tak właśnie wygląda większość przykładów Google.
Dokumentacja Google naprawdę wydaje się, że korzystanie z kontekstu aplikacji jest w większości przypadków w porządku i faktycznie pojawia się częściej niż użycie kontekstu aktywności w ich przykładach (przynajmniej w przykładach, które widziałem). Jeśli korzystanie z kontekstu aplikacji jest naprawdę takim problemem, Google naprawdę musi położyć na to większy nacisk. Muszą to wyjaśnić i muszą powtórzyć niektóre ze swoich przykładów. Nie winiłbym tego całkowicie za niedoświadczonych programistów, ponieważ władza (Google) naprawdę sprawia, że wygląda na to, że korzystanie z kontekstów aplikacji nie stanowi problemu.