Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void scheduleSynchronization(Context ctx, long delta, boolean cancel) {
- SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(ctx);
- long interval = Integer.parseInt(pref.getString(SYNC_INTERVAL, DEFAULT_SYNC_INTERVAL)) * 1000L;
- Intent intent = new Intent(ctx, AlarmReceiver.class);
- PendingIntent sender = PendingIntent.getBroadcast(ctx, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
- AlarmManager am = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
- am.cancel(sender);
- boolean canUseNetwork = getNetworkState(ctx) == CAN_USE_NETWORK;
- if (!cancel && canUseNetwork && pref.getBoolean(AUTO_SYNC, false)) {
- int mode = pref.getBoolean(WAKE_ONLY, false) ? ELAPSED_REALTIME : ELAPSED_REALTIME_WAKEUP;
- final long elapsed = SystemClock.elapsedRealtime();
- final long firstFireTime = delta == 0 ? elapsed + interval : elapsed + delta;
- if (pref.getBoolean(EditPreferences.STRICT_INTERVAL, false)) {
- am.setRepeating(mode, firstFireTime, interval, sender);
- } else {
- am.setInexactRepeating(mode, firstFireTime, interval, sender);
- }
- Log.d(ClockSync.TAG, "Timer set, interval: " + interval / 1000);
- } else {
- Log.d(ClockSync.TAG, "Timer cancelled");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement