Monkey found some bugs... apparently you can't double-schedule a TimerTask.

pull/14/head
Tim Su 17 years ago
parent e902a4ff08
commit 26af21a8ea

@ -65,8 +65,7 @@ public class TaskView extends TaskModificationActivity<TaskModelForView> {
private NumberPickerDialog progressDialog; private NumberPickerDialog progressDialog;
private Handler handler; private Handler handler;
private Timer updateTimer; private Timer updateTimer = null;
private TimerTask updateTimerTask;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -112,18 +111,6 @@ public class TaskView extends TaskModificationActivity<TaskModelForView> {
}, r.getString(R.string.progress_dialog), 0, 10, 0, 100); }, r.getString(R.string.progress_dialog), 0, 10, 0, 100);
name.setTextSize(36); name.setTextSize(36);
updateTimerTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
updateElapsedTimeText();
}
});
}
};
} }
private void setUpListeners() { private void setUpListeners() {
@ -230,14 +217,29 @@ public class TaskView extends TaskModificationActivity<TaskModelForView> {
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
updateTimer.cancel(); // stop the timer updateTimer.cancel(); // stop the timer
updateTimer = null;
} }
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
populateFields(); populateFields();
if(updateTimer != null)
return;
updateTimer = new Timer(); // start timer updateTimer = new Timer(); // start timer
updateTimer.scheduleAtFixedRate(updateTimerTask, 0, 1000); updateTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
updateElapsedTimeText();
}
});
}
}, 0, 1000);
} }
// --- event response methods // --- event response methods

Loading…
Cancel
Save