¿Alguien puede decirme si existe un equivalente para setInterval / setTimeout para Android? ¿Alguien tiene algún ejemplo sobre cómo hacerlo?
java
javascript
android
settimeout
karse23
fuente
fuente
MyActivityName.this.myFunctionOnActivity()
Handler timeout = new Handler(); final Runnable r = new Runnable{...}; timeout.postDelayed(r, 300);
y si quieres cancelarlo:timeout.removeCallbacks(r);
setInterval ()
función que se repite cada n milisegundos
Javascript
Equivalente aproximado de Java
setTimeout ()
función que funciona solo después de n milisegundos
Javascript
Equivalente aproximado de Java
fuente
scheduleAtFixedRate
método, ¿cómo cancela el temporizador dentro de la actividad una vez que la actividad ha terminado?Si no le preocupa despertar su teléfono o recuperar su aplicación de la muerte, intente:
fuente
Dependiendo de lo que realmente quieras lograr, deberías echar un vistazo a los controladores de Android:
http://developer.android.com/reference/android/os/Handler.html
Si anteriormente utilizó javascript setTimeout (), etc. para programar una tarea para que se ejecute en el futuro, esta es la forma en que Android lo hace (postDelayed / sendMessageDelayed).
Tenga en cuenta que ni Handlers ni Timers hacen que un teléfono Android se active desde el modo de suspensión. En otras palabras, si desea programar algo para que suceda realmente a pesar de que la pantalla está apagada / la CPU está durmiendo, también debe consultar el AlarmManager.
fuente
No sé mucho sobre JavaScript, pero creo que Timers puede ser lo que estás buscando.
http://developer.android.com/reference/java/util/Timer.html
Desde el enlace:
One-shot está programado para ejecutarse en un tiempo absoluto o después de un retraso relativo. Las tareas recurrentes se programan con un período fijo o una tasa fija.
fuente
La primera respuesta es definitivamente la respuesta correcta y es en lo que basé esta versión lambda, que es mucho más corta en sintaxis. Como Runnable solo tiene 1 método de anulación "run ()", podemos usar un lambda:
fuente
fuente
Aquí hay un setTimeout equivalente, principalmente útil cuando se trata de actualizar la interfaz de usuario después de un retraso.
Como ya sabrás, la actualización de la interfaz de usuario solo puede hacerse desde el hilo de la interfaz de usuario. AsyncTask lo hace por usted llamando a su método onPostExecute desde ese hilo.
fuente
onProgressUpdate()
también se puede utilizar para simularsetInterval()
. 2.AsyncTask
ejecuta en un grupo de subprocesos (o simplemente un solo hilo), por lo que a. puede que tenga que esperar hasta que otroAsyncTask
termine; b . ocupará un hilo del grupo.Estaba creando un reproductor de mp3 para Android, quería actualizar la hora actual cada 500 ms, así que lo hice así
setInterval
que llama al mismo método de forma recursiva
fuente