Advertisement
JetSerge

Untitled

Nov 19th, 2013
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. public static void scheduleSynchronization(Context ctx, long delta, boolean cancel) {
  2. SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(ctx);
  3. long interval = Integer.parseInt(pref.getString(SYNC_INTERVAL, DEFAULT_SYNC_INTERVAL)) * 1000L;
  4.  
  5. Intent intent = new Intent(ctx, AlarmReceiver.class);
  6. PendingIntent sender = PendingIntent.getBroadcast(ctx, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
  7. AlarmManager am = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
  8. am.cancel(sender);
  9.  
  10. boolean canUseNetwork = getNetworkState(ctx) == CAN_USE_NETWORK;
  11.  
  12. if (!cancel && canUseNetwork && pref.getBoolean(AUTO_SYNC, false)) {
  13. int mode = pref.getBoolean(WAKE_ONLY, false) ? ELAPSED_REALTIME : ELAPSED_REALTIME_WAKEUP;
  14.  
  15. final long elapsed = SystemClock.elapsedRealtime();
  16. final long firstFireTime = delta == 0 ? elapsed + interval : elapsed + delta;
  17.  
  18. if (pref.getBoolean(EditPreferences.STRICT_INTERVAL, false)) {
  19. am.setRepeating(mode, firstFireTime, interval, sender);
  20. } else {
  21. am.setInexactRepeating(mode, firstFireTime, interval, sender);
  22. }
  23. Log.d(ClockSync.TAG, "Timer set, interval: " + interval / 1000);
  24. } else {
  25. Log.d(ClockSync.TAG, "Timer cancelled");
  26. }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement