PROGRAMAÇÃO PARA
DISPOSITIVOS MÓVEIS
Aula 7 – Handler
Objetivos da aula
 Handler
 Exercícios
O que é Handler?
A classe android.os.Handler nos
permite enviar ou agendar a
execução de uma mensagem.
Para enviar uma mensagem
precisamos instanciar
android.os.Message e repassá-lo
ao método sendMessage de
Handler.
Para receber uma mensagem
precisamos sobreescrever o método
handlerMessage(message) da
classe Handler.
Como executar uma mensagem?
public class MinhaActivity extends Activity implements OnClickListener {
private Handler handler = new TesteHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teste_handler);
Button play = (Button) findViewById(R.id.testehandler);
play.setOnClickListener(this);
}
public void onClick(View v) {
handler.sendMessage (new Message());
}
private class TesteHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show();
}
}
}
public class MinhaActivity extends Activity implements OnClickListener {
private Handler handler = new TesteHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teste_handler);
Button play = (Button) findViewById(R.id.testehandler);
play.setOnClickListener(this);
}
public void onClick(View v) {
handler.sendMessage (new Message());
}
private class TesteHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show();
}
}
}
public class MinhaActivity extends Activity implements OnClickListener {
private Handler handler = new TesteHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teste_handler);
Button play = (Button) findViewById(R.id.testehandler);
play.setOnClickListener(this);
}
public void onClick(View v) {
handler.sendMessage (new Message());
}
private class TesteHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show();
}
}
}
public class MinhaActivity extends Activity implements OnClickListener {
private Handler handler = new TesteHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teste_handler);
Button play = (Button) findViewById(R.id.testehandler);
play.setOnClickListener(this);
}
public void onClick(View v) {
handler.sendMessage(new Message());
}
private class TesteHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show();
}
}
}
public class MinhaActivity extends Activity implements OnClickListener {
private Handler handler = new TesteHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teste_handler);
Button play = (Button) findViewById(R.id.testehandler);
play.setOnClickListener(this);
}
public void onClick(View v) {
handler.sendMessage (new Message());
}
private class TesteHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show();
}
}
}
Me parece sem sentido!
Que tal agendarmos este
processamento?
public class MinhaActivity extends Activity implements OnClickListener {
private Handler handler = new TesteHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teste_handler);
Button play = (Button) findViewById(R.id.testehandler);
play.setOnClickListener(this);
}
public void onClick(View v) {
handler.sendMessage (new Message());
}
private class TesteHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show();
}
}
}
public class MinhaActivity extends Activity implements OnClickListener {
private Handler handler = new TesteHandler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.teste_handler);
Button play = (Button) findViewById(R.id.testehandler);
play.setOnClickListener(this);
}
public void onClick(View v) {
handler.sendMessageDelayed(new Message(), 3000);
}
private class TesteHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show();
}
}
}
Exercício!
Criem uma tela de Splash, três
segundos depois, iniciem a tela
principal do projeto e finalizem a tela
de Splash...
Até a próxima!

Aula 22/05 (Handler)

  • 1.
  • 2.
    Objetivos da aula Handler  Exercícios
  • 3.
    O que éHandler?
  • 4.
    A classe android.os.Handlernos permite enviar ou agendar a execução de uma mensagem.
  • 5.
    Para enviar umamensagem precisamos instanciar android.os.Message e repassá-lo ao método sendMessage de Handler.
  • 6.
    Para receber umamensagem precisamos sobreescrever o método handlerMessage(message) da classe Handler.
  • 7.
  • 8.
    public class MinhaActivityextends Activity implements OnClickListener { private Handler handler = new TesteHandler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.teste_handler); Button play = (Button) findViewById(R.id.testehandler); play.setOnClickListener(this); } public void onClick(View v) { handler.sendMessage (new Message()); } private class TesteHandler extends Handler { @Override public void handleMessage(Message msg) { Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show(); } } }
  • 9.
    public class MinhaActivityextends Activity implements OnClickListener { private Handler handler = new TesteHandler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.teste_handler); Button play = (Button) findViewById(R.id.testehandler); play.setOnClickListener(this); } public void onClick(View v) { handler.sendMessage (new Message()); } private class TesteHandler extends Handler { @Override public void handleMessage(Message msg) { Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show(); } } }
  • 10.
    public class MinhaActivityextends Activity implements OnClickListener { private Handler handler = new TesteHandler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.teste_handler); Button play = (Button) findViewById(R.id.testehandler); play.setOnClickListener(this); } public void onClick(View v) { handler.sendMessage (new Message()); } private class TesteHandler extends Handler { @Override public void handleMessage(Message msg) { Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show(); } } }
  • 11.
    public class MinhaActivityextends Activity implements OnClickListener { private Handler handler = new TesteHandler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.teste_handler); Button play = (Button) findViewById(R.id.testehandler); play.setOnClickListener(this); } public void onClick(View v) { handler.sendMessage(new Message()); } private class TesteHandler extends Handler { @Override public void handleMessage(Message msg) { Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show(); } } }
  • 12.
    public class MinhaActivityextends Activity implements OnClickListener { private Handler handler = new TesteHandler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.teste_handler); Button play = (Button) findViewById(R.id.testehandler); play.setOnClickListener(this); } public void onClick(View v) { handler.sendMessage (new Message()); } private class TesteHandler extends Handler { @Override public void handleMessage(Message msg) { Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show(); } } }
  • 13.
    Me parece semsentido! Que tal agendarmos este processamento?
  • 14.
    public class MinhaActivityextends Activity implements OnClickListener { private Handler handler = new TesteHandler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.teste_handler); Button play = (Button) findViewById(R.id.testehandler); play.setOnClickListener(this); } public void onClick(View v) { handler.sendMessage (new Message()); } private class TesteHandler extends Handler { @Override public void handleMessage(Message msg) { Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show(); } } }
  • 15.
    public class MinhaActivityextends Activity implements OnClickListener { private Handler handler = new TesteHandler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.teste_handler); Button play = (Button) findViewById(R.id.testehandler); play.setOnClickListener(this); } public void onClick(View v) { handler.sendMessageDelayed(new Message(), 3000); } private class TesteHandler extends Handler { @Override public void handleMessage(Message msg) { Toast.makeText(MinhaActivity.this, msg.what + "", Toast.LENGTH_LONG).show(); } } }
  • 17.
    Exercício! Criem uma telade Splash, três segundos depois, iniciem a tela principal do projeto e finalizem a tela de Splash...
  • 18.