Buscar

Aula 05 Entendendo a Classe Activity Dispositivos Moveis

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

CCT0080 – Programação para Dispositivos Móveis
Aula 05: Entendendo a Classe Activity
Estrutura da Aula
A classe Activity
Ciclo de Vida
Os Métodos
Depurador
Tela LogCat
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
A Classe Activity
A classe Activity
Representa uma tela com Interface Gráfica capaz de prover algum tipo de interação com o usuário. Uma aplicação Android pode ser composta de diversas activities para fornecer um conjunto de funcionalidades para o Usuário
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida da Classe Activity
Quando o Usuário acessa a aplicação, navega pelas opções, sai ou retorna para a mesma, as atividades que compõem passam por uma série de estados do ciclo de vida. 
Sempre que a Activity muda de estado, o Android aciona um método (callback) correspondente. 
Assim que o usuário inicia uma aplicação, o Android cria a atividade principal que está declarada no AndroidManifest.xml e invoca o método onCreate. É neste método que atribuímos qual leiaute será utilizado na atividade e também são iniciadas as variáveis e recursos necessários. 
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=http://schemas.android.com/apk/res/android
package="com.example.eduardo.adivinha4application" >
 <application android:allowBackup="true“
 android:icon="@mipmap/ic_launcher“
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 <activity android:name=".AdivinhaActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 </application>
</manifest>
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida da Classe Activity
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
onCreate( )
onStart( )
onResume( )
onPause( )
onStop( )
onRestart( )
onDestroy( )
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
onCreate ( )
Executado quando uma Activity é criada. Geralmente é o método responsável por carregar os layouts (XML) e outras operações de inicialização. Só é executado 1 vez durante o Clico de Vida da Activity.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
onStart ( )
É chamado logo depois do onCreate() ou quando a Activity que estava em background volta a ter foco. (Depois dela temos onResume, caso a Activity esteja em primeiro plano ou onStop se ela não for visível).
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
onResume ( )
Método chamado quando a Activity vai começar a interagir com o usuário (ou retoma foco). Sempre vem depois do onStart, caso a Activity tenha sido iniciada ou se ela estava parada (onStop), ou pode ocorrer direto (vindo depois do onPause) caso a Activity, que não estava em primeiro plano, mas ainda visível, volte para o topo.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
onPause ( )
Ocorre logo antes da Activity perder o foco, ou seja, quando ir para o Background, mas não foi (ainda) destruída. Geralmente é usada para parar animações e recursos que estejam consumindo processamento e persistir dados não salvos, desta forma, se (por falta de recursos) a Activity for destruída, não perderemos essas informações. Tenha em mente que a Activity que está tomando o foco não será criada até que esse método retorne, sendo assim, o código aqui também deve ser leve.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
onStop ( )
É invocado no momento em que o utilizador sai de uma Activity ou muda de aplicação e esta deixa de estar visível para ele. A invocação deste método é também um indicador de que o utilizador não voltara mais e é preciso libertar todos recursos que não serão mais necessários. Note que na figura acima existe uma certa sequência de invocação dos método pelo que para que seja invocado o onStop, terá de ser invocado primeiro o onPause.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
onRestart ( )
O método onRestart é invocado quando voltamos a abrir a Activity de uma app após ter sido “escondida” antes. Um exemplo comum de invocação do onRestart, e quando voltamos a uma activity utilizando a janela de apps recentes(“Recent apps” ) que mostra quais as activities mais recentes tínhamos abertas. Segundo a documentação,  maior parte das aplicacoes nao precisam re-escrever o metodo onRestart e logo apos a sua invocacao, o metodo onStart é invocado.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
onDestroy ( )
Finalmente, o ultimo método do ciclo de vida de uma Activity e o onDestroy(). O onDestroy é invocado naquele último suspiro da activity e nesse momento a Activity é destruída na memoria. O onDestroy() é normalmente invocado nos casos em que uma activity é parada por muito tempo e por uma questão de uma boa gestão de recursos, o sistema elimina a activity da memoria para a utilização por outros processos. O onDestroy() também e invocado caso exista uma instrução que explicitamente invoque o método finish() para terminar com a Activity.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Ciclo de Vida: Os Métodos
Observação
Os métodos onDestroy, onStop e onPause (esse último apenas antes da versão HONEYCOMB) são marcados na documentação como “killable”, ou seja, nesses estados a aplicação pode ser destruída pelo sistema sem executar nenhuma linha de código, sendo assim, use o método onPause para gravar todos os dados que devem ser persistidos, caso a aplicação seja destruída. Além disso, o método onSaveInstanceState(Bundle) é chamado antes desses casos para que alguma informação de estado (Bundle) seja guardada e possa ser resguardada usando o método onCreate(Bundle), caso a Activity retorne. É um pouco complicado, mas você vai entender mais na prática. Enquanto isso, a leitura da documentação é válida.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Exemplo
public class AdivActivity extends AppCompatActivity {
 private EditText editText;
 private Button btnEnvia;
 private Jogo jogo;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_adiv);
 editText = (EditText)findViewById(R.id.editText);
 btnEnvia = (Button)findViewById(R.id.btnAvalia);
 jogo = new Jogo();
 jogo.iniciaJogo();
 btnEnvia.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) { avaliaValor(); }});
 }
onCreate()
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Logging
A classe Log
Registra no log o que está ocorrendo na aplicação
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Depurando
LogCat
Uma janela que nos detalha de uma forma prática todos as tarefas executadas no
sistema Android, para isto clique no menu “Window/Show View/Other” e selecione o item “LogCat”.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Exemplo
public class CiclodeVidaActivity extends Activity 
{
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {   super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.i(“Programa Adiv","Método OnCreate()");}
    @Override
    protected void onStart() 
    {  super.onStart();
        Log.i(" Programa Adiv ","Método OnStart()");}
    @Override
    protected void onResume() 
    {  super.onResume();
        Log.i(" Programa Adiv ","Método OnResume()");   }
Log
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Exemplo (Cont)
    @Override
    protected void onPause() 
    {  super.onPause();
        Log.i(" Programa Adiv ","Método OnPause()");}
    @Override
    protected void onStop() 
    {  super.onStop();
        Log.i(" Programa Adiv ","Método OnStop()");}
    @Override
    protected void onDestroy() 
    {  super.onDestroy();
        Log.i(" Programa Adiv ","Método OnDestroy()");}
} 
Log
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Depurando
LogCat
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Depurando
LogCat
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Exercício
Jogo Adivinhe um Número
Implemente um jogo onde o usuário deverá adivinhar o número sorteado pelo dispositivo móvel entre 1 e 100. Quando o usuário acerta, é informado o número de tentativas gastas.
Para ajudar o jogador, toda vez que o usuário erra, o jogo deverá dizer uma pista, se o número é maior ou menor que o número digitado.
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Exercício – Diagrama de Estados
Início do Jogo
Devemos sortear o número e zerar as tentativas
Solicitar um número
Apresentar Avaliação
Jogando
Jogador Acertou
Apresenta o número de tentativas
Avaliar o Número
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto
Exercício
Programação para Dispositivos Móveis
AULA 05: Entendendo a classe Activity
Prof. Eduardo Luiz Pareto

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais