Skip to content

Instantly share code, notes, and snippets.

@BartoszJarocki
Created September 24, 2015 11:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BartoszJarocki/ad1c2fbc60b23b607190 to your computer and use it in GitHub Desktop.
Save BartoszJarocki/ad1c2fbc60b23b607190 to your computer and use it in GitHub Desktop.
Timer for Android
package com.skily.gps;
import android.os.Handler;
import java.util.concurrent.TimeUnit;
import timber.log.Timber;
public class AndroidTimer {
long mTrackedTime = 0;
long mLastUpdateTime = 0;
Handler mTimerHandler = new Handler();
Runnable mTimerRunnable = new Runnable() {
@Override
public void run() {
long updateTime = System.currentTimeMillis();
long millis = updateTime - mLastUpdateTime;
mTrackedTime += TimeUnit.MILLISECONDS.toSeconds(millis);
Timber.d("Tracked time: " + mTrackedTime);
mTimerHandler.postDelayed(this, 1000);
mLastUpdateTime = updateTime;
}
};
public void startTimer() {
mLastUpdateTime = System.currentTimeMillis();
mTimerHandler.postDelayed(mTimerRunnable, 0);
Timber.d("Timer started.");
}
public long stopTimer() {
long trackedTime = mTrackedTime;
mTrackedTime = 0;
mTimerHandler.removeCallbacks(mTimerRunnable);
Timber.d("Timer stopped.");
return trackedTime;
}
public void pauseTimer() {
mTimerHandler.removeCallbacks(mTimerRunnable);
Timber.d("Timer paused.");
}
public void resumeTimer() {
mLastUpdateTime = System.currentTimeMillis();
mTimerHandler.postDelayed(mTimerRunnable, 0);
Timber.d("Timer resumed.");
}
public long getTrackedTime() {
return mTrackedTime;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment