Android: cómo utilizar un temporizador

Esta es mi primera publicación..

así que estoy aprendiendo Android y Java (procedente de Actionscript), y estoy trabajando en un proyecto donde:

Estoy tratando de hacer clic en un ImageView, que ImageView intercambiar imágenes por un segundo, a continuación, volver a la imagen original. (esto es para un juego de tapping)

suena bastante fácil, ¿verdad? He pasado todo el día tratando de obtener un estándar Java Timer / TimerTask para trabajar .. no hay suerte ..

hay una mejor manera? Quiero decir, ¿hay una forma específica de Android para hacer algo como esto? Si no, entonces ¿cuál es la forma ideal?

gracias por toda su ayuda de antemano chicos! -gramo

Aquí está mi clase de temporizador de Android que debería funcionar bien. Envía una señal cada segundo. Cambiar horario () llamada es que desea un esquema diferente.

Tenga en cuenta que no puede cambiar las cosas gui de Android en el subproceso del temporizador, esto sólo se permite en el subproceso principal. Esta es la razón por la que tiene que utilizar un controlador para devolver el control al hilo principal.

import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; import android.os.Handler; import android.os.Message; public class SystemTimerAndroid { private final Timer clockTimer; private class Task extends TimerTask { public void run() { timerHandler.sendEmptyMessage(0); } } private final Handler timerHandler = new Handler() { public void handleMessage (Message msg) { // runs in context of the main thread timerSignal(); } }; private List<SystemTimerListener> clockListener = new ArrayList<SystemTimerListener>(); public SystemTimerAndroid() { clockTimer = new Timer(); clockTimer.schedule(new Task(), 1000, 1000); } private void timerSignal() { for(SystemTimerListener listener : clockListener) listener.onSystemTimeSignal(); } public void killTimer() { clockTimer.cancel(); } @Override public void addListener(SystemTimerListener listener) { clockListener.add(listener); } } 

Una forma podría ser la creación de un hilo de Pipeline (un hilo normal con Looper.prepare ()). Enviar mensajes retrasados ​​a su bucle de mensajes. En el controlador de mensajes, intercambie las imágenes. Vea la siguiente lista de tutoriales para entender las entidades involucradas:
Tutorial del manejador
Manipulador: documentación
Android guts en Loopers (hilos de Pipeline) y Handlers

Espero que ayude.

  • ¿Cómo iniciar una actividad después de cierto período de tiempo?
  • Android: implementa un temporizador de intervalo de 1 segundo antes de llamar a una función
  • Error de Android: "No se pudo crear la instancia de epoll" o "No se pudo crear el canal de despertador"
  • Enviar notificación una vez por semana
  • Android: Acceso al elemento de interfaz de usuario desde el subproceso del temporizador
  • Android Java: ¿Cómo restar dos veces?
  • CountDownTimer en Android
  • ¿Cómo agregar tiempo al temporizador de cuenta atrás?
  • ¿Cómo comprobar si un temporizador todavía está funcionando o no?
  • Cómo determinar si la tarea del temporizador ha finalizado
  • Android: desea que la aplicación realice tareas cada segundo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.