/** * Copyright (c) 2012 Todoroo Inc * * See the file "LICENSE" for the full license governing this code. */ package com.todoroo.astrid.reminders; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.alarms.AlarmService; /** * Schedules reminders in the background to prevent ANR's * * @author Tim Su * */ public class ReminderSchedulingService extends Service { /** Receive the alarm - start the synchronize service! */ @Override public int onStartCommand(Intent intent, int flags, int startId) { ContextManager.setContext(ReminderSchedulingService.this); new Thread(new Runnable() { @Override public void run() { delaySchedulingToPreventANRs(); scheduleReminders(); stopSelf(); } }).start(); return START_NOT_STICKY; } @SuppressWarnings("nls") private void scheduleReminders() { try { ReminderService.getInstance().scheduleAllAlarms(); AlarmService.getInstance().scheduleAllAlarms(); } catch (Exception e) { Log.e("reminder-scheduling", "reminder-startup", e); } } private void delaySchedulingToPreventANRs() { AndroidUtilities.sleepDeep(5000L); } @Override public IBinder onBind(Intent intent) { return null; } }