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.

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!

0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *