Рассчитать продолжительность - PullRequest
7 голосов
/ 06 апреля 2011

У меня небольшая проблема с Android, у меня есть требование иметь таймер для расчета продолжительности от времени, когда определенное действие было открыто до нажатия определенной кнопки в этом действии, просто, как долго это действие было открыто.При поиске в поисках я нашел TimerTask, но кажется, что он запускает поток только в течение определенного интервала, хотя и кажется, что он идеально подходит для работы из моего небольшого опыта работы с Android

Есть идеи о том, как рассчитать продолжительность?Желательно в очень простой форме

Любая помощь приветствуется

С уважением, MilindaD

Ответы [ 4 ]

18 голосов
/ 06 апреля 2011

Просто используйте System.currentTimeMillis(), чтобы зафиксировать время начала и окончания действия.Например:

long startTime = System.currentTimeMillis();
// wait for activity here
long endTime = System.currentTimeMillis();
long seconds = (endTime - startTime) / 1000;
5 голосов
/ 07 февраля 2019

В Java 8 есть более удобный способ сделать это.

Instant start = Instant.now();
...
Duration.between(start, Instant.now())

Преимущество этого подхода - более гибкий API, предоставляемый классом Duration.

https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html

0 голосов
/ 29 марта 2019

группа: 'org.apache.commons', имя: 'commons-lang3'

 StopWatch stopWatch = new StopWatch();
 stopWatch.start();
       ...
 stopWatch.stop();
 stopWatch.getTime(TimeUnit.SECONDS);
0 голосов
/ 06 апреля 2011

Если вы хотите узнать, как долго работает активность.

Вы можете написать соответствующий код в

  • методах onCreate () и onDestory ()метод.или

  • Метод onResume () Метод onPause ().

в зависимости от ваших потребностей.

и используйте следующий код

long t1 =  new Date().getTime();
long  t2 = new Date().getTime();
long t3 =  t2 - t1;
...