Chronometer no Android, Entendendo e Utilizando

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes! Você receberá um email de confirmação. Somente depois de confirma-lo é que eu poderei lhe enviar os conteúdos semanais exclusivos. Os artigos em PDF são entregues somente para os inscritos na lista.

Email inválido.
Blog /Android /Chronometer no Android, Entendendo e Utilizando

Chronometer no Android, Entendendo e Utilizando

Vinícius Thiengo
(5944) (7)
Go-ahead
"Nunca desista de um sonho apenas por causa do tempo que levará para realizá-lo. O tempo vai passar de qualquer maneira."
Earl Nightingale
Kotlin Android
Capa do livro Mapas Android de Alta Qualidade - Masterização Android
Black Friday
TítuloMapas Android de Alta Qualidade - Masterização Android
CategoriasAndroid, Kotlin, Masterização, Especialização
AutorVinícius Thiengo
Edição
Ano2020
Capítulos11
Páginas166
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba gratuitamente conteúdos Android sem precedentes!
Email inválido

Opa! Blz?

Nesse vídeo mostro como utilizar o componente Chronometer no Android. Bem simples de implementar, tanto via XML quanto via API. Fique atento quanto ao método setBase() da classe Chronometer, pois é entendendo ele que se consegue implementar a lógica do botão pause, pois como dito no vídeo, não há o método pause() na classe Chronometer. Então é isso, a classe Chronometer evita que nós tenhamos que implementar um caminhão de código para trabalhar com a funcionalidade de cronômetro no Android além de nos fornecer uma interface simples e funcional.

Obs. : o método elapsedRealtime() da classe SystemClock retorna o tempo desde que o dispositivo foi iniciado e não o time Ubuntu de 1969.

O link para download do projeto se encontra logo abaixo no post.

Segue as páginas das classes comentadas no vídeo:

Página da classe SystemClock no site oficial do Android

Página da classe Chronometer no site oficial do Android

Vlw

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes!
Email inválido

Relacionado

VideoView no Android, Entendendo e UtilizandoVideoView no Android, Entendendo e UtilizandoAndroid
Instalando o Emulador Genymotion no AndroidInstalando o Emulador Genymotion no AndroidAndroid
SQLite no Android, Entendendo e UtilizandoSQLite no Android, Entendendo e UtilizandoAndroid
VideoView Com Vídeo Interno a APP AndroidVideoView Com Vídeo Interno a APP AndroidAndroid

Compartilhar

Comentários Facebook

Comentários Blog (7)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
Davi Lima e Silva (1) (0)
27/08/2018
Olá Tudo bem ?
Vi sua aula e fiquei com uma duvida porque tenho uma necessidade que não está explicada no vídeo,  eu tenho um aplicação com um cronometro e o que preciso é recuperar o valor já contato no cronometro tipo "00:15", preciso pegar esses 15 segundos para calcular ele em porcentagem.
A pergunta é como faço para recuperar esse valor já contato pelo cronometro ?

Desde de já obrigado
Responder
Vinícius Thiengo (1) (0)
27/08/2018
Davi Lima, tudo bem?

Confesso que já faz um tempo que não trabalho com a API Chronometer, mas sei que é possível saber quando o cronômetro foi iniciado e quando ele foi parado, logo, com base nisso, o que pode ser feito é:

-> Assim que o cronômetro for iniciado, inicie também uma variável de instância do tipo "long" e que contenha o valor atual dos milissegundos do sistema, algo similar a:

/* Obtendo os milissegundos atuais. */
milliInstance = System.currentTimeMillis();

-> Ao stop do cronômetro faça o cálculo dos segundos que se passaram, como a seguir:

/* Obtendo os segundos atuais. */
long actualMillis = System.currentTimeMillis();
milliInstance = actualMillis - milliInstance;
long seconds = milliInstance / 1000;

Na variável seconds você terá os segundos transcorrido desde o início do cronômetro.

Davi Lima, tente o algoritmo descrito anteriormente, pois assim você conseguirá obter o time correto para o algoritmo de seu domínio de problema.

Abraço.
Responder
08/02/2017
Opa, blz? (risos)

Thiengo, tentei adicionar os milissegundos e não consegui.
meu format ficou:
...
long t = SystemClock.elapsedRealtime() - chr.getBase();
chr.setText(DateFormat.format("kk:mm:ss:SS", t));
...

Mas não rolou  :(

Sabe como posso pegar os milissegundos sem "gambiarra"?

Vlw!
Responder
Vinícius Thiengo (0) (0)
10/02/2017
Jaquisson, tudo bem?

Pesquisei aqui e os milissegundos, a principio, não é possível obter. Veja essa discussão: http://stackoverflow.com/a/2979959/2578331

Isso, pois a atualização é a cada segundo apenas. Abraço.
Responder
11/02/2017
Bom dia!
Obrigado pelo retorno.
Então terei que criar um cronômetro com milissegundos "na mão" mesmo.
Obrigado e parabéns pela iniciativa!

Att,
Jaquisson
Responder
07/05/2014
como fazer um cronometro com tempo marcado, Exemplo: ele começa do 0 e eu coloco um tempo para ele parar tipo em 5 minutos
ou entaum ao contrario ele começa com o tempo que eu desejar
Exemplo: começa em 5 minutos e vai descendo ate 0
desde ja agradeço abraços
Responder
Vinícius Thiengo (0) (0)
07/05/2014
Fala Lucas, blz. Então provavelmente deve ter mais de uma forma de se ouvir o Chronometer até os 5 minutos e então parar. Uma que vejo que tem a implementação simples é a utilização de um while(true) com verificação se o chronometer já atingiu ou não os 5 minutos, se sim vc cancela o Chronometer (stop) e da um break para sair do while(true). Para utilizar contagem regressiva tem a classe CountDownTimer que é especifica para isso. Essa é tranquila tb de se implementar. Abraço.
Responder