Chronometer no Android, Entendendo e Utilizando

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

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

Chronometer no Android, Entendendo e Utilizando

Vinícius Thiengo
(5043) (7)
Go-ahead
"Esse tem sido um dos meus mantras: foco e simplicidade. Simples pode ser mais difícil do que o complexo. Você tem que trabalhar duro para conseguir o seu pensamento limpo para torná-lo simples. Mas vale a pena no final, porque uma vez que você chegue lá, você pode mover montanhas."
Steve Jobs
Kotlin Android
Capa do livro Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia
TítuloDesenvolvedor Kotlin Android - Bibliotecas para o dia a dia
CategoriasAndroid, Kotlin
AutorVinícius Thiengo
Edição
Capítulos19
Páginas1035
Acessar Livro
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
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

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
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