Alguém pode me dizer se existe um equivalente para setInterval / setTimeout para o Android? Alguém tem algum exemplo de como fazer isso?
java
javascript
android
settimeout
karse23
fonte
fonte
MyActivityName.this.myFunctionOnActivity()
Handler timeout = new Handler(); final Runnable r = new Runnable{...}; timeout.postDelayed(r, 300);
e se você quiser cancelá-lo:timeout.removeCallbacks(r);
setInterval ()
função que se repete a cada n milissegundos
Javascript
Java aproximado equivalente
setTimeout ()
função que funciona somente após n milissegundos
Javascript
Java aproximado equivalente
fonte
scheduleAtFixedRate
método, como você cancela o cronômetro dentro da atividade após o término dessa atividade?Se você não está preocupado em ativar o telefone ou trazer seu aplicativo de volta dos mortos, tente:
fonte
Dependendo do que você realmente deseja alcançar, dê uma olhada nos Manipuladores do Android:
http://developer.android.com/reference/android/os/Handler.html
Se você já usou o javascript setTimeout () etc para agendar uma tarefa para execução no futuro, esta é a maneira do Android de fazer isso (postDelayed / sendMessageDelayed).
Observe que nem Handlers nem Timers fazem com que um telefone Android seja ativado no modo de suspensão. Em outras palavras, se você deseja agendar algo para realmente acontecer, mesmo que a tela esteja desligada / a CPU esteja inativa, você também deve verificar o AlarmManager.
fonte
Não sei muito sobre JavaScript, mas acho que os Timers podem ser o que você está procurando.
http://developer.android.com/reference/java/util/Timer.html
No link:
O one-shot está programado para ser executado em um tempo absoluto ou após um atraso relativo. Tarefas recorrentes são agendadas com um período fixo ou uma taxa fixa.
fonte
A primeira resposta é definitivamente a resposta correta e é disso que eu baseei esta versão lambda, que é muito mais curta na sintaxe. Como Runnable possui apenas 1 método de substituição "run ()", podemos usar um lambda:
fonte
fonte
Aqui está um equivalente de setTimeout, útil principalmente ao tentar atualizar a interface do usuário após um atraso.
Como você deve saber, a atualização da interface do usuário pode ser feita apenas a partir do encadeamento da interface do usuário. O AsyncTask faz isso por você chamando seu método onPostExecute a partir desse segmento.
fonte
onProgressUpdate()
também pode ser usado para simularsetInterval()
. 2.AsyncTask
roda em um conjunto de encadeamentos (ou apenas um único encadeamento), então a. pode ter que esperar até que outroAsyncTask
termine; b . ocupará um segmento da piscina.Eu estava criando um mp3 player para android, queria atualizar o horário atual a cada 500ms, então fiz assim
setInterval
que chama o mesmo método recursivamente
fonte