Estoy desarrollando una aplicación para Android 2.3.3 y necesito ejecutar un método cada X segundos .
En iOS, tengo NSTimer , pero en Android no sé qué usar.
Alguien me ha recomendado Handler ; otro me recomendó AlarmManager pero no sé qué método encaja mejor con NSTimer .
Este es el código que quiero implementar en Android:
timer2 = [
NSTimer scheduledTimerWithTimeInterval:(1.0f/20.0f)
target:self
selector:@selector(loopTask)
userInfo:nil
repeats:YES
];
timer1 = [
NSTimer scheduledTimerWithTimeInterval:(1.0f/4.0f)
target:self
selector:@selector(isFree)
userInfo:nil
repeats:YES
];
Necesito algo que funcione como NSTimer .
¿Qué me recomiendas?
Respuestas:
Esto realmente depende de cuánto tiempo necesite para ejecutar la función.
Si es => 10 minutos → iría con Alarm Manager.
Y luego recibe estas transmisiones a través del receptor de transmisión. Tenga en cuenta que deberá registrarlo en el manifiesto de su aplicación o mediante el
context.registerReceiver(receiver,filter);
método. Para obtener más información sobre los receptores de transmisión, consulte los documentos oficiales. Receptor de difusión .Si es = <10 minutos → iría con un Handler.
fuente
h.removeCallbacks(this);
, de lo contrario, debe mantener una referencia al ejecutable para poder eliminarlo. Si se desea el segundo, el método publicado aquí podría no ser su mejor ruta.Utilice el temporizador para cada segundo ...
fuente
Puede probar este código para llamar al controlador cada 15 segundos a través de onResume () y detenerlo cuando la actividad no sea visible, a través de onPause ().
fuente
Si está familiarizado con RxJava, puede usar Observable.interval (), que es bastante bueno.
La desventaja de esto es que debe diseñar el sondeo de sus datos de una manera diferente. Sin embargo, hay muchos beneficios en la forma de programación reactiva:
Con RxAndroid, puede manejar subprocesos en solo 2 líneas de código.
Consulte RxJava. Tiene una curva de aprendizaje alta, pero hará que el manejo de llamadas asincrónicas en Android sea mucho más fácil y limpio.
fuente
¡Con Kotlin, ahora podemos hacer una función genérica para esto!
Y para usar, simplemente haz:
fuente
fuente
Aquí utilicé un hilo en onCreate () una actividad repetidamente, el temporizador no permite todo en algunos casos el hilo es la solución
En caso de que sea necesario, puede ser detenido por
fuente
Aquí tal vez una respuesta útil para su problema al usar Rx Java & Rx Android .
fuente