Objetivo:
Realizar una acción que deseemos tras esperar unos segundos.
Captura de pantalla

Código fuente java (/src/Principal.java):
package com.acciontrassegundos.tutorialandroid; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; public class Principal extends Activity { public static int MILISEGUNDOS_ESPERA = 5000; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } /** * Al pulsar el botón ejecutamos la funcion de espera * @param v */ public void onClick_AccionTrasSegundos(View v) { esperarYCerrar(MILISEGUNDOS_ESPERA); } /** * Espera y cierra la aplicación tras los milisegundos indicados * @param milisegundos */ public void esperarYCerrar(int milisegundos) { Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { // acciones que se ejecutan tras los milisegundos finalizarApp(); } }, milisegundos); } /** * Finaliza la aplicación */ public void finalizarApp() { finish(); } }
Código fuente XML (/res/layout/main.xml):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="by TutorialAndroid.com\n\nPulsa el botón, y tras 5 segundos la aplicación se cerrará automáticamente.\n" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Cerrar App tras 5 segundos" android:onClick="onClick_AccionTrasSegundos" /> </LinearLayout>
Descárgate el código aquí
Funciona perfecto. Gracias!
gracias! Estoy creando un juego de memoria para Android y necesario para que el sistema espere unos 2 segundos para comparar las tarjetas. Utilizei Threads, TimerTasks y no funciono. Y uno Handler funciono! :)
gracias por la función (y)
lo utilice para inicializar una nueva actividad
es posible enviar dos textView que contiene la latitud y la longitud a mysql de esta manera.. en este momento guardo esos datos con un boton, pero quiero que se guarden cada 10 minutos sin necesidad de presionar el boton.