How To Implement Pause And Resume Method In Countdowntimer
Hi i am working countdowntimer concept. Here when i click start button the countdown will start. as well as stop also its working fine but i need to implement pause and resume meth
Solution 1:
The only way I see is to cancel timer when you call pause and create a new one when you want to resume it, something like this :
public class MainActivity extends ActionBarActivity implements OnClickListener {
private MyCountDownTimer countDownTimer;
private boolean timerHasStarted = false;
private Button startB;
public TextView text;
private final long startTime = 30 * 1000;
private final long interval = 1 * 1000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startB = (Button) this.findViewById(R.id.button);
startB.setOnClickListener(this);
text = (TextView) this.findViewById(R.id.timer);
countDownTimer = new MyCountDownTimer(startTime, interval,text );
// Set starting value
text.setText(text.getText() + String.valueOf(startTime / 1000));
}
public void onClick(View v) {
if (!timerHasStarted) {
// Start or resume counter
countDownTimer = countDownTimer.resume();
timerHasStarted = true;
startB.setText("PAUSE");
} else {
// Pause counter
countDownTimer.pause();
timerHasStarted = false;
startB.setText("RESTART");
}
}
public class MyCountDownTimer extends CountDownTimer
{
private long mRemainingTime = 0;
private long mInterval = 0;
private TextView mtvxToUpdate = null
// Use a textview reference to update text on each tick()
public MyCountDownTimer(long startTime, long interval,TextView txv ) {
super(startTime, interval);
this.mInterval = interval;
this.mRemainingTime = startTime;
this.mtvxToUpdate = txv;
}
@Override
public void onFinish() {
mtvxToUpdate.setText("Time's up!");
}
@Override
public void onTick(long millisUntilFinished) {
mRemainingTime = millisUntilFinished;
mtvxToUpdate.setText("" + millisUntilFinished / 1000);
}
public void pause(){
// Stop current timer
this.cancel();
}
public MyCountDownTimer resume(){
// Create a counter with last saved data (just before pause)
MyCountDownTimer newTimer = new MyCountDownTimer(mRemainingTime,mInterval,mtvxToUpdate);
// Start this new timer that start where old one stop
newTimer.start();
// Return this new timer
return newTimer;
}
}
}
Post a Comment for "How To Implement Pause And Resume Method In Countdowntimer"