package com.ubergeek42.WeechatAndroid.service; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.SystemClock; import com.ubergeek42.WeechatAndroid.relay.BufferList; public class SyncAlarmReceiver extends BroadcastReceiver { final private static int SYNC_EVERY_MS = 60 * 5 * 1000; // 5 minutes public static void start(Context context) { AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(context, SyncAlarmReceiver.class); PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); am.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + SYNC_EVERY_MS, SYNC_EVERY_MS, pi); } public static void stop(Context context) { // todo } @Override public void onReceive(Context context, Intent intent) { if (!BufferList.syncHotlist()) ((AlarmManager) context.getSystemService(Context.ALARM_SERVICE)). cancel(PendingIntent.getBroadcast(context, 0, intent, 0)); } }