package tinygsn.services; import android.app.AlarmManager; import android.app.IntentService; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.util.Log; import tinygsn.beans.StaticData; import tinygsn.beans.WrapperConfig; import tinygsn.model.wrappers.AbstractWrapper; public abstract class WrapperService extends IntentService { public WrapperConfig config = null; public AbstractWrapper w; public WrapperService(String name) { super(name); } @Override protected void onHandleIntent(Intent intent) { Bundle b = intent.getBundleExtra("tinygsn.beans.config"); config = b.getParcelable("tinygsn.beans.config"); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); if (!config.isRunning()) { am.cancel(PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); return; } long interval = 10; try { w = StaticData.getWrapperByName(config.getWrapperName()); w.runOnce(); interval = w.getDcInterval(); } catch (Exception e) { Log.e("WrapperService["+this.getClass().getName()+"]", e.getMessage()); } am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000 * interval, PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); } }