Como ejecutar un método cada x tiempo en android

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

 

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.

Un comentario en «Como ejecutar un método cada x tiempo en android»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat