From 0af4cf9d9967b546bd070533843cb890c695c450 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Fri, 26 Dec 2008 00:17:16 +0000 Subject: [PATCH] Fixed some activity lifecycle things: - closing DB on onStop instead of onDestroy - stoping timer on onPause, recreating on onResume Closes Issue #2 --- src/com/timsu/astrid/activities/TaskList.java | 4 ++-- .../activities/TaskModificationActivity.java | 4 ++-- src/com/timsu/astrid/activities/TaskView.java | 17 ++++++----------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/com/timsu/astrid/activities/TaskList.java b/src/com/timsu/astrid/activities/TaskList.java index 3b9c496d8..b3f68d9cd 100644 --- a/src/com/timsu/astrid/activities/TaskList.java +++ b/src/com/timsu/astrid/activities/TaskList.java @@ -410,8 +410,8 @@ public class TaskList extends Activity { } @Override - protected void onDestroy() { - super.onDestroy(); + protected void onStop() { + super.onStop(); controller.close(); } } \ No newline at end of file diff --git a/src/com/timsu/astrid/activities/TaskModificationActivity.java b/src/com/timsu/astrid/activities/TaskModificationActivity.java index 7d1eef577..5999049cf 100644 --- a/src/com/timsu/astrid/activities/TaskModificationActivity.java +++ b/src/com/timsu/astrid/activities/TaskModificationActivity.java @@ -35,8 +35,8 @@ public abstract class TaskModificationActivity { private Handler handler; private Timer updateTimer; + private TimerTask updateTimerTask; @Override protected void onCreate(Bundle savedInstanceState) { @@ -112,7 +113,7 @@ public class TaskView extends TaskModificationActivity { name.setTextSize(36); - final TimerTask elapsedTimeUpdater = new TimerTask() { + updateTimerTask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { @@ -123,10 +124,7 @@ public class TaskView extends TaskModificationActivity { }); } }; - - // update the timer UI updateTimer = new Timer(); - updateTimer.scheduleAtFixedRate(elapsedTimeUpdater, 0, 1000); } private void setUpListeners() { @@ -224,25 +222,22 @@ public class TaskView extends TaskModificationActivity { if(resultCode != RESULT_CANCELED) { setResult(resultCode); finish(); + } else { + populateFields(); } } @Override protected void onPause() { super.onPause(); + updateTimer.cancel(); // stop the timer } @Override protected void onResume() { super.onResume(); populateFields(); - } - - @Override - /** Cancel the timer thread */ - protected void onDestroy() { - super.onDestroy(); - updateTimer.cancel(); + updateTimer.scheduleAtFixedRate(updateTimerTask, 0, 1000); // start timer } // --- event response methods