Si encuentras algún detalle que no entiendes puedes dejarlo en la sección de comentarios y haremos todo lo necesario de ayudarte lo mas rápido que podamos.
Puedes usar esto para detener ese ejecutable
handler.removeCallbacks(calendarUpdater);
removeCallbacks(Ejecutable r) :Eliminar cualquier publicación pendiente de Runnable r
que están en la cola de mensajes.
Editar
Puedes organizar tu código así
En tus onCreate()
de MainActivity.java
Handler handler = new Handler();
refreshCalendar()
//outside oncreate
public void refreshCalendar()
calAdapter.refreshDays();
calAdapter.notifyDataSetChanged();
startRepeatingTask();
calTitle.setText(android.text.format.DateFormat.format("MMMM yyyy", cal));
public Runnable calendarUpdater = new Runnable()
@Override
public void run()
items.clear();
allData = new ArrayList>();
allData.clear();
allData = db.showAllEvents();
String currentDate = (String)android.text.format.DateFormat.format("MM/yyyy", cal);
for(int i=0; i
Ahora solo puedes llamar startRepeatingTask()
para publicar el mensaje y para dejar de usar stopRepeatingTask()
Heredado del siguiente enlace
¿Repetir una tarea con un retraso de tiempo?
Prueba debajo de la línea,
controlador.removeMessages(0);
Eliminar cualquier publicación pendiente de mensajes con código what
que están en la cola de mensajes.
El controlador no tiene nada que ser detenido o empezado. Es solo una puerta de entrada para publicar mensajes y ejecutables en la cola de subprocesos. En su caso, está publicando un Runnable, que se ejecutará en el hilo de Handler. Tienes que detener ese Runnable. Entonces, pon un cheque en eso for
bucle para romperlo.
También puedes usar removeCallbacks(Runnable r)
sobre Handler
para cancelar publicado Runnable
's. Pero esto no eliminará esos Runnable
's que ya se están ejecutando.