2016-05-27 3 views
0

私はクイズタイプのアプリケーションに取り組んでいます。私はいくつかの活動の間の時間を計算したいと思います。私のレベルはアクティビティAからスタートし、アクティビティHで終了します。私はすべてのアクティビティで取られた時間を計算したいと思います。誰でも最初のアクティビティから終了アクティビティまでの時間を数えてもらえますか?アンドロイドでの活動時間を測定する方法

+1

ただ、ユーザーが開始した時間を記録し、ユーザーが終了した時刻に差を算出。それは複雑ではありませんが、あなたがすでに試したものについての特定の情報がなければ、誰もあなたにアドバイスを与えることはできません。 –

+0

最後のアクティビティの終了時にタイマーコード&サービスを停止するサービスを使用します。 – Vasant

答えて

0

変数

//counter of time since app started, a background task 
private long mStartTime = 0L; 
private TextView mTimeLabel; 

//handler to handle the message to the timer task 
private Handler mHandler = new Handler(); 

スタートのonCreateまたはONSTARTでタイマーや、独自の方法(ボタンのクリック)

if(mStartTime==0L){ 
     mStartTime=SystemClock.uptimeMillis(); 
     mHandler.removeCallbacks(mUpdateTimeTask); 
     mHandler.postDelayed(mUpdateTimeTask,100); 
    } 

タイマー機能

private Runnable mUpdateTimeTask = new Runnable() { 
    public void run() { 
     final long start = mStartTime; 
     long millis = SystemClock.uptimeMillis() - start; 
     int seconds = (int) (millis/1000); 
     int minutes = seconds/60; 
     seconds = seconds % 60; 
     mTimeLabel.setText("" + minutes + ":" 
       + String.format("%02d", seconds)); 
     mHandler.postDelayed(this, 200); 
    } 
}; 

宣言アプリが最小化されたら、タイマーを一時停止する

@Override 
protected void onPause() { 
    mHandler.removeCallbacks(mUpdateTimeTask); 
    super.onPause(); 
} 

アプリが再開されたときに、タイマーを再開

@Override 
protected void onResume() { 
    super.onResume(); 
    mHandler.postDelayed(mUpdateTimeTask, 100); 
} 
+0

私は最後のクラスにこのコードを配置する必要がありますか? – Usman

+0

@Usmanはあなたが時間を追跡したいと思う活動を入れます、plsは答えを受け取りますか、少なくともupvoteを受け入れます –

関連する問題