Android - Atividades
Uma atividade representa uma única tela com uma interface de usuário, assim como a janela ou quadro de Java. A atividade do Android é a subclasse da classe ContextThemeWrapper.
Se você trabalhou com a linguagem de programação C, C ++ ou Java, então deve ter visto que seu programa começa a partir de main()função. De maneira muito semelhante, o sistema Android inicia seu programa com umActivitycomeçando com uma chamada no método de retorno de chamada onCreate () . Há uma sequência de métodos de retorno de chamada que inicia uma atividade e uma sequência de métodos de retorno de chamada que interrompem uma atividade, conforme mostrado no diagrama de ciclo de vida da atividade abaixo: ( imagem cortesia: android.com )
A classe Activity define os seguintes callbacks, ou seja, eventos. Você não precisa implementar todos os métodos de retorno de chamada. No entanto, é importante que você entenda cada um e implemente aqueles que garantem que seu aplicativo se comporte da maneira que os usuários esperam.
Sr. Não | Retorno de chamada e descrição |
---|---|
1 |
onCreate() Este é o primeiro retorno de chamada e chamado quando a atividade é criada pela primeira vez. |
2 | onStart() Este retorno de chamada é chamado quando a atividade se torna visível para o usuário. |
3 | onResume() Isso é chamado quando o usuário começa a interagir com o aplicativo. |
4 | onPause() A atividade pausada não recebe entrada do usuário e não pode executar nenhum código e é chamada quando a atividade atual está sendo pausada e a atividade anterior está sendo retomada. |
5 | onStop() Este retorno de chamada é chamado quando a atividade não está mais visível. |
6 | onDestroy() Este retorno de chamada é chamado antes que a atividade seja destruída pelo sistema. |
7 | onRestart() Este retorno de chamada é chamado quando a atividade é reiniciada após interrompê-la. |
Exemplo
Este exemplo o conduzirá por etapas simples para mostrar o ciclo de vida da atividade do aplicativo Android. Siga as etapas a seguir para modificar o aplicativo Android que criamos no capítulo de exemplo Hello World -
Degrau | Descrição |
---|---|
1 | Você usará o Android Studio para criar um aplicativo Android e nomeá-lo como HelloWorld em um pacote com.example.helloworld, conforme explicado no capítulo Exemplo de Hello World . |
2 | Modifique o arquivo de atividade principal MainActivity.java conforme explicado abaixo. Mantenha o resto dos arquivos inalterados. |
3 | Execute o aplicativo para iniciar o emulador Android e verifique o resultado das alterações feitas no aplicativo. |
A seguir está o conteúdo do arquivo de atividade principal modificado src/com.example.helloworld/MainActivity.java. Este arquivo inclui cada um dos métodos fundamentais do ciclo de vida. oLog.d() método foi usado para gerar mensagens de log -
package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
public class MainActivity extends Activity {
String msg = "Android : ";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(msg, "The onCreate() event");
}
/** Called when the activity is about to become visible. */
@Override
protected void onStart() {
super.onStart();
Log.d(msg, "The onStart() event");
}
/** Called when the activity has become visible. */
@Override
protected void onResume() {
super.onResume();
Log.d(msg, "The onResume() event");
}
/** Called when another activity is taking focus. */
@Override
protected void onPause() {
super.onPause();
Log.d(msg, "The onPause() event");
}
/** Called when the activity is no longer visible. */
@Override
protected void onStop() {
super.onStop();
Log.d(msg, "The onStop() event");
}
/** Called just before the activity is destroyed. */
@Override
public void onDestroy() {
super.onDestroy();
Log.d(msg, "The onDestroy() event");
}
}
Uma classe de atividade carrega todo o componente UI usando o arquivo XML disponível na pasta res / layout do projeto. A instrução a seguir carrega os componentes da IU do arquivo res / layout / activity_main.xml :
setContentView(R.layout.activity_main);
Um aplicativo pode ter uma ou mais atividades sem quaisquer restrições. Cada atividade que você define para seu aplicativo deve ser declarada em seu arquivo AndroidManifest.xml e a atividade principal para seu aplicativo deve ser declarada no manifesto com um <intent-filter> que inclui a ação MAIN e a categoria LAUNCHER da seguinte maneira:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tutorialspoint7.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Se a ação PRINCIPAL ou a categoria LAUNCHER não forem declaradas para uma de suas atividades, o ícone do seu aplicativo não aparecerá na lista de aplicativos da tela inicial.
Vamos tentar executar nosso modificado Hello World!aplicativo que acabamos de modificar. Suponho que você tenha criado o seuAVDao fazer a configuração do ambiente. Para executar o aplicativo do Android Studio, abra um dos arquivos de atividade do seu projeto e clique no
08-23 10:32:07.682 4480-4480/com.example.helloworld D/Android :: The onCreate() event
08-23 10:32:07.683 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:32:07.685 4480-4480/com.example.helloworld D/Android :: The onResume() event
Vamos tentar clicar no botão da tela de bloqueio no emulador Android e ele irá gerar as seguintes mensagens de eventos em LogCat janela no android studio:
08-23 10:32:53.230 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:32:53.294 4480-4480/com.example.helloworld D/Android :: The onStop() event
Vamos tentar novamente desbloquear sua tela no emulador Android e ele irá gerar as seguintes mensagens de eventos em LogCat janela no Android Studio:
08-23 10:34:41.390 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:34:41.392 4480-4480/com.example.helloworld D/Android :: The onResume() event
A seguir, vamos tentar novamente clicar
08-23 10:37:24.806 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:37:25.668 4480-4480/com.example.helloworld D/Android :: The onStop() event
08-23 10:37:25.669 4480-4480/com.example.helloworld D/Android :: The onDestroy() event