Witam,
Zastanawia mnie jak zaprogramować w Androidzie następującą rzecz. Mam sobie Service, które działa w tle. To service ma sprawdzać w bazie danych czy pewne pole w bazie danych zostało zmienione.

Jak można elegancko to zrealizować?
Mam takie coś:

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class MyService extends Service {
	private Toast myToast;
	private Timer updatingTimer;
	
	private TimerTask notify = new TimerTask() {
		@Override
		public void run() {
                     // tutaj sprawdzam czy warunek w bazie spelniony
                     // i jesli tak to zmieniam dane wedlug potrzeb
		}
	};
	
	@Override
	public void onCreate() {
		super.onCreate();
		
		updatingTimer = new Timer();
		
		myToast = Toast.makeText(getApplicationContext(), "Usluga zostala uruchomiona", Toast.LENGTH_SHORT);
		
		myToast.show();
	}
	
	@Override
	public void onStart(Intent intent, int startId) {
		super.onStart(intent, startId);
                // ten kod odpowiada za cykliczne uruchamianie notify
                // zastanawia mnie jednak czy jest to eleganckie rozwiazanie problemu
                // cyklicznego sprawdzania czy pewien warunek w danych w bazie SQLite
                // jest spelniony i odpowiadnia obsluge tego warunku 
		updatingTimer.scheduleAtFixedRate(notify, 5 * 1000, 5 * 1000);
	}
	
	@Override
	public IBinder onBind(Intent arg0) {
		return null;
	}
	
	@Override
	public void onDestroy() {
		updatingTimer.cancel();
		
		myToast.setText("Usługa została zatrzymana");
		myToast.show();
		
		super.onDestroy();
	}
}

Czy samo cykliczne robienie zapytań do bazy i w razie potrzeby wprowadzenie zmian wystarczy czy też istnieją do tego specjalne obiekty?

Pozdrawiam,