9

小さなAndroidの問題があります。特定のアクティビティが開いてから、そのアクティビティの特定のボタンがクリックされるまでの期間、つまりアクティビティが開いている時間の長さを計算するタイマーが必要です。グーグルしながらTimerTaskを見つけましたが、これは特定の間隔でのみスレッドを実行しているようですが、私の小さなAndroidの経験からは仕事に理想的ではないようです

期間を計算する方法について何かアイデアはありますか?できれば非常に簡単な方法で

どんな助けでも大歓迎です

よろしく、MilindaD

4

4 に答える 4

21

System.currentTimeMillis()アクティビティが開始および停止する時間をキャプチャするために使用するだけです。例えば:

long startTime = System.currentTimeMillis();
// wait for activity here
long endTime = System.currentTimeMillis();
long seconds = (endTime - startTime) / 1000;
于 2011-04-06T07:02:58.743 に答える
7

Java 8の時点で、これを行うためのより便利な方法があります。

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

このアプローチの利点は、Durationクラスによって提供されるより柔軟なAPIです。

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

于 2019-02-07T14:34:04.343 に答える
0

アクティビティが開いている期間を知りたい場合。

あなたはそれぞれのコードを書くことができます

  • onCreate()メソッドとonDestory()メソッド。また

  • onResume()メソッドonPause()メソッド。

必要に応じて。

次のコードを利用します

long t1 =  new Date().getTime();
long  t2 = new Date().getTime();
long t3 =  t2 - t1;
于 2011-04-06T07:19:21.803 に答える
0

グループ:'org.apache.commons'、name:'commons-lang3'

 StopWatch stopWatch = new StopWatch();
 stopWatch.start();
       ...
 stopWatch.stop();
 stopWatch.getTime(TimeUnit.SECONDS);
于 2019-03-29T16:39:37.730 に答える