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

Respostas:

33

getApplicationContext() O contexto do aplicativo está associado ao aplicativo e sempre será o mesmo ao longo do ciclo de vida.

getBasecontext()não deve ser usado, apenas use em Contextvez do que está associado à atividade e pode ser destruído quando a atividade for destruída.

Harinder
fonte
16
e quanto a getApplication () e getParent ()
Nikunj Patel
107

getApplicationContext () O contexto do aplicativo está associado ao aplicativo e sempre será o mesmo ao longo do ciclo de vida.

getBasecontext () não deve ser usado, apenas use Context em vez do que está associado à atividade e pode ser destruído quando a atividade for destruída.

getApplication () está disponível apenas para Activity e Services. Embora nas atuais implementações de atividade e serviço do Android, getApplication () e getApplicationContext () retornem o mesmo objeto, não há garantia de que esse sempre será o caso (por exemplo, em uma implementação de fornecedor específico). Portanto, se você quiser a classe Application registrada no Manifest, nunca deve chamar getApplicationContext () e lançá-la em seu aplicativo, porque pode não ser a instância do aplicativo (que obviamente você experimentou com a estrutura de teste).

getParent () retorna o objeto da atividade se a visão atual for um filho. Em outras palavras, retorna o objeto de atividade que hospeda a visão filho quando chamado dentro do filho.

Ravi
fonte
16
Como você mencionou, não devemos usar getBaseContext (), se não for tão importante, então por que está na codificação e quais são suas principais vantagens. por favor, me elabore sobre isso
Pir Fahim Shah
getBaseContext () deve ser usado em situações muito específicas. Há uma explicação muito boa aqui - medium.com/@ali.muzaffar/…
lomza