package de.pointedears.converter.helpers; import android.app.Service; import android.content.Intent; import android.os.Handler; import android.os.IBinder; import de.pointedears.converter.app.CurrenciesActivity; import de.pointedears.converter.net.RatesUpdater; /** * Update service to run a thread to update currency rates * * @author Thomas 'PointedEars' Lahn */ public class UpdateService extends Service { private ConverterThread updateThread; private Handler handler; private RatesUpdater ratesUpdater; public static final String ACTION_UPDATE = "de.pointedears.converter.ACTION_UPDATE"; //$NON-NLS-1$ public static final String EXTRA_ACTIVITY = "de.pointedears.converter.extra_activity"; //$NON-NLS-1$ public static final String EXTRA_NUM_RATES = "de.pointedears.converter.extra_num_rates"; //$NON-NLS-1$ public static final String EXTRA_DATE = "de.pointedears.converter.extra_date"; //$NON-NLS-1$ /* NOTE: Don't remove; may be used later for automated updates */ // private sendTimerTask sendTime = null; // /** inner class implements the broadcast timer */ // private class BroadcastTimerTask extends TimerTask // { // int counter = 0; // // @Override // public void run() // { // Intent intent = new Intent(UpdateService.ACTION_UPDATE); // String theTime = // "Time: " + System.currentTimeMillis() + ", Counter = " // + Integer.toString(this.counter); // this.counter++; // intent.putExtra("TIME", theTime); // UpdateService.this.sendBroadcast(intent); // } // }; @Override public IBinder onBind(Intent intent) { /* NOTE: Clients cannot bind to this service */ return null; } @Override public void onCreate() { super.onCreate(); // this.myTimer = new Timer("myTimer"); if (this.handler == null) { this.handler = new Handler(); } this.updateThread = null; } // /* // * (non-Javadoc) // * // * @see android.app.Service#onStartCommand(android.content.Intent, int, int) // */ // @Override // public int onStartCommand(Intent intent, int flags, int startId) // { // // TODO Auto-generated method stub // return super.onStartCommand(intent, flags, startId); // } @Override /** * @deprecated since SDK 2.0 */ public void onStart(Intent intent, int startId) { super.onStart(intent, startId); // this.myTimer.cancel(); // this.myTimer = new Timer("myTimer"); // this.sendTime = new BroadcastTimerTask(); // this.myTimer.scheduleAtFixedRate(this.sendTime, 0, 1000 * 5); String action = intent.getAction(); if (UpdateService.ACTION_UPDATE.equals(action)) { if (this.updateThread == null) { this.ratesUpdater = new RatesUpdater(this); this.updateThread = new ConverterThread(this.ratesUpdater, this.handler); this.ratesUpdater.setUpdateThread(this.updateThread); } try { this.updateThread.start(); // this.editValue1.setText("Gestartet!"); } catch (IllegalThreadStateException e) { // this.editValue1.setText("Bereits gestartet!"); } // case R.id.item_options_quit: // if (this.updateThread != null) // { // try // { // this.updateThread.join(); // } // catch (InterruptedException e) // { // // TODO Auto-generated catch block // } // // // this.editValue1.setText("Gestoppt -> Warten auf Start"); // } // else // { // // this.editValue1.setText("Bereits gestoppt -> Warten auf Start"); // } // return true; } } }