use Handler.postDelayed for repeated task
[WhereAmI.git] / src / org / average / whereami / WhereAmI.java
index 2f69212af35f023f542cd6d4a5a310d29e242426..11867938dfed201f1baca8a0cd6d9f36b6d51766 100644 (file)
@@ -3,6 +3,8 @@ package org.average.whereami;
 import android.app.Activity;
 import android.os.Bundle;
 import android.os.AsyncTask;
+import android.os.Handler;
+import android.os.SystemClock;
 import android.util.Log;
 import android.view.View;
 import android.view.Window;
@@ -11,6 +13,8 @@ import android.widget.TextView;
 
 public class WhereAmI extends Activity
 {
+    private TextView tv;
+
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState)
@@ -20,11 +24,24 @@ public class WhereAmI extends Activity
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
         getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
         setContentView(R.layout.main);
+        tv = (TextView)findViewById(R.id.tv);
         Log.v("WhereAmI", "created UI, about to start update task");
-        new TimedUpdateTask().execute(5);
+       mHandler.postDelayed(updateClock, 2000);
         Log.v("WhereAmI", "created UI, update task created");
     }
 
+    private Handler mHandler = new Handler();
+
+    private Runnable updateClock = new Runnable () {
+        public void run() {
+            long millis = System.currentTimeMillis();
+            Log.v("updateClock", "executing");
+            // new TimedUpdateTask().execute(5); // for delayed execution
+            tv.setText(Long.toString(millis));
+            mHandler.postDelayed(this, 2000);
+        }
+    };
+
     private class TimedUpdateTask extends AsyncTask<Integer, Void, String> {
        @Override
         protected String doInBackground(Integer... howlong) {
@@ -40,9 +57,8 @@ public class WhereAmI extends Activity
     
        @Override
         protected void onPostExecute(String str) {
-            TextView tv = (TextView)findViewById(R.id.tv);
             Log.v("TimedUpdateTask", "callback executing");
-            tv.append("\n" + str);
+            tv.setText(str);
         }
     }
 }