Hoy hablaremos de un tema interesante como ejecutar un método cada x tiempo, tal vez llegue el momento en que te ayas planteado ejecutar algún método una cierta cantidad de veces cada cierto tiempo, bueno te comento que la solución es bien fácil pero hoy usaremos una de las mas fácil para mi, el uso de Handler, sin mas rodeos empezamos con el ejercicio.
Como ejecutar un método cada x tiempo
Contenidos
Cosas que debo saber sobre Handler
-Es una clase publica.
-Permite poner en cola una acción que se realiza en un sub proceso.
-Permite poner en cola un mensaje en la parte delantera o enviar al final de la cola después de un determinado tiempo.
Estructura Handler
final Handler handler= new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { Aqui va el metodo a ejecutar handler.postDelayed(this,Tiempo en milesimas cada x segundos se ejecutara); }
Ejemplo practico
Necesitamos crear una interface con un botón como te muestro en l siguiente imagen:

ejecutar método cada x tiempo
activity_main
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/btnEnviar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="56dp" android:text="ACTIVAR" android:textSize="18sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
MainActivity
public class MainActivity extends AppCompatActivity { Button iniciar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Enviar = (Button) findViewById(R.id.btnEnviar); iniciar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { ejecutar();//iniciamos nuestro handler } }); } private void ejecutar(){ final Handler handler= new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { metodoEjecutar();//llamamos nuestro metodo handler.postDelayed(this,10000);//se ejecutara cada 10 segundos } },5000);//empezara a ejecutarse después de 5 milisegundos } private void metodoEjecutar() { Aqui codigo de lo que haga tu metodo } }
Eso ha sido todo espero les haya servido, saludos.
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!
Muchas gracias!!! He podido poner mi reloj con esto.