studio O que é "Contexto" no Android?




how to get context android studio (23)

Na programação do Android, o que exatamente é uma classe Context e para que é usada?

Eu li sobre isso no site do desenvolvedor , mas não consigo entender claramente.


Esse atributo declara com qual atividade esse layout está associado por padrão .


Pense nisso como a VM que isolou o processo no qual o aplicativo ou serviço está sendo executado. O ambiente em silos tem acesso a várias informações de sistema subjacentes e a certos recursos permitidos. Você precisa desse contexto para chegar a esses serviços.


Basta colocá-lo lá fora para iniciantes;

Então, primeiro compreenda o contexto da palavra:

Em inglês-lib. Isso significa:

"As circunstâncias que formam o cenário para um evento, declaração ou ideia, e em termos dos quais ela pode ser totalmente compreendida e avaliada."

"As partes de algo escrito ou falado que imediatamente precedem e seguem uma palavra ou passagem e esclarecem seu significado."

Agora, tenha o mesmo entendimento para o mundo da programação:

contexto do estado atual do aplicativo / objeto. Permite que objetos recém-criados entendam o que está acontecendo. Normalmente você o chama para obter informações sobre outra parte do seu programa (atividade, pacote / aplicativo)

Você pode obter o contexto invocando getApplicationContext() , getContext(), getBaseContext() ou this (quando na classe de atividade).

Para obter Contexto em Qualquer Lugar no aplicativo, use o seguinte código:

Crie uma nova classe AppContext dentro do seu aplicativo android

public class AppContext extends Application {

    private static Context context;

    public void onCreate(){
        super.onCreate();
        AppContext.context = getApplicationContext();
    }

    public static Context getAppContext() {
        return AppContext.context;
    }
}

Agora, toda vez que você quiser o contexto do aplicativo na classe que não seja de atividade, chame esse método e você terá o contexto do aplicativo.

Espero que esta ajuda;)


Contexto é uma referência ao objeto atual como este. Também contexto permite acesso a informações sobre o ambiente de aplicativos.


Um Context é o que a maioria de nós chamaria de aplicativo . É feito pelo sistema Android e é capaz de fazer apenas o que um aplicativo é capaz de fazer. No Tomcat, um Contexto também é o que eu chamaria de aplicativo.

Existe um Contexto que contém muitas Atividades, cada Atividade pode ter muitas Visualizações.

Obviamente, alguns dirão que não cabe por causa disso ou daquilo e provavelmente estão certos, mas dizer que um Contexto é sua aplicação atual o ajudará a entender o que você está colocando nos parâmetros do método.


O que é Context exatamente?

De acordo com a documentação de referência do Android, é uma entidade que representa vários dados do ambiente. Ele fornece acesso a arquivos locais, bancos de dados, carregadores de classes associados ao ambiente, serviços (incluindo serviços no nível do sistema) e muito mais. Ao longo deste livro, e no seu código do dia-a-dia com Android, você verá o Contexto sendo transmitido com frequência.

Do livro " Android na prática ", p. 60

Diversas APIs do Android exigem um Context como parâmetro

Se você observar as várias APIs do Android, perceberá que muitas delas usam um objeto android.content.Context como parâmetro. Você também verá que uma atividade ou um serviço geralmente é usado como um Context . Isso funciona porque ambas as classes se estendem do Context .


Contexto é Instâncias da classe android.content.Context fornecem a conexão com o sistema Android que executa o aplicativo. Por exemplo, você pode verificar o tamanho da exibição do dispositivo atual por meio do Contexto.

Também dá acesso aos recursos do projeto. É a interface para informações globais sobre o ambiente de aplicativos.

A classe Context também fornece acesso a serviços Android, por exemplo, o gerenciador de alarmes para acionar eventos baseados no tempo.

Atividades e serviços estendem a classe Context. Portanto, eles podem ser usados ​​diretamente para acessar o contexto.


A classe android.content.Context fornece a conexão com o sistema Android e os recursos do projeto. É a interface para informações globais sobre o ambiente de aplicativos.

O Contexto também fornece acesso aos Serviços do Android, por exemplo, o Serviço de Localização.

Atividades e Serviços ampliam a classe Context .


Instâncias da classe android.content.Context fornecem a conexão com o sistema Android que executa o aplicativo. Por exemplo, você pode verificar o tamanho da exibição do dispositivo atual por meio do Contexto.

Também dá acesso aos recursos do projeto. É a interface para informações globais sobre o ambiente de aplicativos.

A classe Context também fornece acesso a serviços Android, por exemplo, o gerenciador de alarmes para acionar eventos baseados no tempo.

Atividades e serviços estendem a classe Context. Portanto, eles podem ser usados ​​diretamente para acessar o contexto.


Definição de Contexto

  • Contexto representa dados do ambiente
  • Ele fornece acesso a coisas como bancos de dados

Termos mais simples (exemplo 1)

  • Considere Person-X é o CEO de uma empresa de software start-up.

  • Há um arquiteto líder presente na empresa, este arquiteto líder faz todo o trabalho na empresa que envolve, como banco de dados, interface do usuário etc.

  • Agora o CEO contrata um novo desenvolvedor.

  • É o arquiteto que diz a responsabilidade do recém-contratado com base nas habilidades da nova pessoa que quer ele trabalhe em banco de dados ou UI etc.

Termos mais simples (exemplo 2)

  • É como o acesso da atividade do Android ao recurso do aplicativo.

  • É semelhante a quando você visita um hotel, você quer café da manhã, almoço e jantar nos horários adequados, certo?

  • Há muitas outras coisas que você gosta durante o tempo de permanência. Como você consegue essas coisas?

  • Você pede que a pessoa do serviço de quarto traga essas coisas para você.

  • Aqui a pessoa de serviço de quarto é o contexto considerando que você é a única atividade e o hotel para ser seu aplicativo, finalmente o café da manhã, almoço & jantar tem que ser os recursos.

Coisas que envolvem contexto são:

  1. Carregando um recurso.
  2. Lançando uma nova atividade.
  3. Criando exibições.
  4. obtenção de serviço do sistema.

Contexto é a classe base para Atividade , Serviço , Aplicativo , etc

Outra maneira de descrever isso: Considere o contexto como remoto de uma TV e canal na televisão são recursos, serviços, usando intenções, etc - - - Aqui remoto atua como um acesso para obter acesso a todos os recursos diferentes em primeiro plano.

  • Então, o Remote tem acesso a canais como recursos, serviços, usando intents etc ....

  • Da mesma forma ... Quem tem acesso remoto naturalmente tem acesso a todas as coisas, como recursos, serviços, usando intenções, etc.

Diferentes métodos pelos quais você pode obter contexto

  • getApplicationContext()
  • getContext()
  • getBaseContext()
  • ou this (quando na classe de atividade)

Exemplo:

TextView TV=new TextView(this);

this -> refere-se ao contexto da atividade atual.


Analogia do Assistente de Chefe

Vamos ter uma pequena analogia antes de mergulhar fundo na tecnicidade do Contexto

Todo chefe tem um assistente ou alguém (garoto de recados) que faz coisas menos importantes e mais demoradas para ele. Por exemplo, se eles precisarem de um arquivo ou café, um assistente estará em funcionamento. O chefe não saberá o que está acontecendo no segundo plano, mas o arquivo ou a tarefa será entregue

Então aqui
Boss - Aplicativo para Android
Assistente - Contexto
Arquivo ou xícara de café - Recurso

O site oficial do desenvolvedor Android diz sobre o Context

Contexto é o seu ponto de acesso para recursos relacionados ao aplicativo

Vamos ver alguns desses recursos ou tarefas

  • Lançando uma atividade.

  • Obtendo o caminho absoluto para o diretório de cache específico do aplicativo no sistema de arquivos.

  • Determinar se a permissão dada é permitida para um processo específico e um ID do usuário em execução no sistema.

  • Verificando se você recebeu uma permissão específica.

E assim por diante.
Portanto, se um aplicativo Android quiser iniciar uma atividade, ele irá diretamente para o Context (Access Point), e a classe Context lhe devolverá os recursos (Intent, neste caso).

Como qualquer outra classe, a classe Context também possui campos e métodos.
Você pode explorar mais sobre o Context na documentação oficial, ele abrange praticamente tudo, métodos disponíveis, campos e até mesmo como usar campos com métodos.


O Contexto é a API específica do Android para o Sandbox cada aplicativo que fornece dados privados do aplicativo de acesso, como recursos, bancos de dados, diretórios de arquivos particulares, preferências, configurações ...

A maioria dos privatedata é a mesma para todas as atividades / serviços / broadcastlisteners de um aplicativo.

Como Application, Activity, Service implementam a interface Context, eles podem ser usados ​​onde uma chamada api precisa de um parâmetro Context


Contexto é uma interface para informações globais sobre um ambiente de aplicativo. É uma classe abstrata cuja implementação é fornecida pelo sistema Android .

Context permite o acesso a recursos e classes específicos do aplicativo, bem como chamadas para operações em nível de aplicativo, como launching activities, broadcasting and receiving intents, etc.

Aqui está um exemplo

 public class MyActivity extends Activity {

      public void Testing() {

      Context actContext = this; /*returns the Activity Context since   Activity extends Context.*/

      Context appContext = getApplicationContext();    /*returns the context of the single, global Application object of the current process. */

      Button BtnShowAct1 = (Button) findViewById(R.id.btnGoToAct1);
      Context BtnContext = BtnShowAct1.getContext();   /*returns the context of the View. */

Para mais detalhes, acesse Context


O contexto é basicamente para o acesso a recursos e para obter os detalhes do ambiente do aplicativo (para o contexto do aplicativo) ou atividade (para o contexto de atividade) ou qualquer outro ...

Para evitar vazamento de memória, você deve usar o contexto de aplicação para todos os componentes que precisam de um objeto de contexto .... para mais clique here


Colocando de forma simples, o Androids Context é uma bagunça que você não vai amar até parar de se preocupar.

Context Android s são:

  • Objetos de Deus.

  • Coisa que você quer passar em torno de toda a sua aplicação quando você está começando a desenvolver para o Android, mas vai evitar fazê-lo quando você chegar um pouco mais perto de programação, testes e Android em si.

    • Dependência pouco clara.

    • Fonte comum de vazamentos de memória.

    • PITA para testes.

  • Contexto real usado pelo sistema Android para despachar permissões, recursos, preferências, serviços, transmissões, estilos, mostrando diálogos e inflar o layout. E você precisa de Contextinstâncias diferentes para algumas coisas separadas (obviamente, você não pode mostrar um diálogo de um aplicativo ou contexto de serviço; layouts inflados de contextos de aplicativos e atividades podem ser diferentes).


Colocando de maneira simples:

Como o nome sugere, é o contexto do estado atual do aplicativo / objeto. Permite que objetos recém-criados entendam o que está acontecendo. Normalmente você o chama para obter informações sobre outra parte do seu programa (atividade e pacote / aplicativo).

Você pode obter o contexto invocando getApplicationContext() , getContext() , getBaseContext() ou this (quando em uma classe que se estende de Context , como as classes Application, Activity, Service e IntentService).

Usos típicos do contexto:

  • Criando novos objetos : Criando novas visualizações, adaptadores, ouvintes:

    TextView tv = new TextView(getContext());
    ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);
  • Acessando recursos comuns padrão : Serviços como LAYOUT_INFLATER_SERVICE, SharedPreferences:

    context.getSystemService(LAYOUT_INFLATER_SERVICE)
    getApplicationContext().getSharedPreferences(*name*, *mode*);
  • Acessando os componentes implicitamente : Em relação aos provedores de conteúdo, transmissões, intenção

    getApplicationContext().getContentResolver().query(uri, ...);

Contextsignifica componente (ou aplicação) em vários períodos de tempo. Se eu comer tantos alimentos entre 1 e 2 da tarde, meu contexto dessa hora será usado para acessar todos os métodos (ou recursos) usados ​​durante esse período. O conteúdo é um componente (aplicativo) para um determinado momento. Contextdos componentes do aplicativo continua mudando com base no ciclo de vida subjacente dos componentes ou aplicativos. Por exemplo, dentro do onCreate () de um Activity,

getBaseContext()- dá o contextdo Activityque está setado (criado) pelo construtor de atividade. getApplicationContext()- fornece a Contextconfiguração (criada) durante a criação da aplicação.

Nota: <application>detém todos os componentes do Android.

<application>
    <activity> .. </activity> 

    <service>  .. </service>

    <receiver> .. </receiver>

    <provider> .. </provider>
</application> 

Isso significa que, quando você chama getApplicationContext()de dentro de qualquer componente, você está chamando o contexto comum de todo o aplicativo.

Context continua sendo modificado pelo sistema com base no ciclo de vida dos componentes.


Um Context Android é uma Interface (no sentido geral, não no sentido de Java; em Java, o Context é, na verdade, uma classe abstrata!) Que permite acesso a recursos específicos de aplicativos e classe e informações sobre o ambiente de aplicativos.

Se o seu aplicativo Android for um aplicativo da web, seu contexto será algo semelhante ao ServletContext (não estou fazendo uma comparação exata aqui).

Suas atividades e serviços também estendem o Context , então eles herdam todos esses métodos para acessar as informações do ambiente em que o aplicativo está sendo executado.


Contexto significa que o Android deve saber em qual atividade eu devo agir ou agir.

1 - Toast.makeText (contexto, "Inserir todos os detalhes", Toast.LENGTH_SHORT) .show (); é usado nisso. Contexto de contexto = ActivityName.this;

2 -startActivity (novo Intent (contexto, LoginActivity.class));

neste contexto, significa de qual atividade você quer ir para outra atividade. context ou ActivityName.this é mais rápido, getContext e getApplicatinContext.


Contextsignifica atual. Contextuse para fazer a operação para a tela atual. ex.
1. getApplicationContext ()
2. getContext ()

Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_SHORT).show();

Context é uma "interface" para as informações globais sobre um ambiente de aplicativo. Na prática, o Context é na verdade uma classe abstrata , cuja implementação é fornecida pelo sistema Android.

Ele permite o acesso a recursos e classes específicos do aplicativo, bem como chamadas para operações em nível de aplicativo, como atividades de lançamento, intenções de transmissão e recebimento, etc.

Na figura a seguir, você pode ver uma hierarquia de classes, onde Context é a classe raiz dessa hierarquia. Em particular, vale a pena enfatizar que Activity é um descendente de Context .


Um Contexto é uma alça para o sistema; Ele fornece serviços como resolver recursos, obter acesso a bancos de dados e preferências e assim por diante. Um aplicativo para Android tem atividades. O contexto é como um identificador para o ambiente no qual seu aplicativo está sendo executado atualmente. O objeto de atividade herda o objeto Contexto.

Para mais informações, consulte Introdução ao desenvolvimento do Android com o Android Studio - Tutorial .


  • Context representa um identificador para obter dados do ambiente.
  • Context classe de Context é declarada como abstrata, cuja implementação é fornecida pelo sistema operacional Android.
  • Context é como controle remoto de uma TV e canal na televisão são recursos, serviços, etc.

O que você pode fazer com isso?

  • Carregando recurso.
  • Lançando uma nova atividade.
  • Criando exibições.
  • Obtendo o serviço do sistema.

Formas de obter contexto:

  • getApplicationContext()
  • getContext()
  • getBaseContext()






android-context