2016-05-27 10 views
0

genommen wird Ich arbeite an Quizartanwendung und ich möchte Zeit zwischen einigen Tätigkeiten berechnen. zum Beispiel beginnt mein Level von Aktivität A und endet bei Aktivität H. Ich möchte die Zeit, die von allen Aktivitäten genommen wird, berechnen. Kann mir bitte jemand helfen, die Zeit von der ersten bis zur letzten Aktivität zu zählen?Wie man die Zeit misst, die durch Tätigkeiten in android

+1

einfach die Zeit der Benutzer gestartet aufzeichnen und dann die Differenz zu dem Zeitpunkt berechnen, wenn der Benutzer beendet hat. Es ist nicht kompliziert, aber ohne genauere Informationen über das, was Sie bereits versucht haben, kann Ihnen niemand einen Rat geben. –

+0

Verwenden Sie den Service für den Timer-Code und den Service am Ende der letzten Aktivität. – Vasant

Antwort

0

Deklarieren Sie die Variablen

//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(); 

Starten Sie den Timer in onCreate oder onStart oder Ihre eigene Methode (Schaltfläche anklickt)

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

Timer-Funktion

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); 
    } 
}; 

, wenn die App ist minimiert, pausieren Sie den Timer

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

, wenn die App wieder aufgenommen werden, wieder den Timer

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

Ich muss diesen Code in der letzten Klasse ??? – Usman

+0

@Usman in die Aktivität, wo Sie die Zeit verfolgen möchten, pls akzeptieren Antwort oder zumindest upvote –

Verwandte Themen