If you think the Android project Wardrobe_app listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package com.android.busolo.apps.wardrobe.sync;
//fromwww.java2s.comimport android.app.AlarmManager;
import android.app.IntentService;
import android.app.PendingIntent;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SyncResult;
import android.os.Bundle;
import com.android.busolo.apps.wardrobe.Config;
import java.io.IOException;
import java.util.Calendar;
import java.util.Random;
importstatic com.android.busolo.apps.wardrobe.utils.LogUtils.makeLogTag;
importstatic com.android.busolo.apps.wardrobe.utils.LogUtils.LOGE;
/**
* Created by s-brian on 5/24/2014.
*/publicclass SyncService extends IntentService {
private SyncHelper mSyncHelper;
privatestatic PendingIntent alarmIntent = null;
public SyncService() {
super("SyncService");
}
@Override
publicvoid onHandleIntent(Intent intent) {
Bundle extras = intent.getExtras();
finalboolean uploadOnly = extras.getBoolean(ContentResolver.SYNC_EXTRAS_UPLOAD, false);
finalboolean manualSync = extras.getBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, false);
finalboolean initialize = extras.getBoolean(ContentResolver.SYNC_EXTRAS_INITIALIZE, false);
if (!uploadOnly) {
downloadFromServer();
}
queueNextSync();
}
/**
* Download data from the server.
*/privatevoid downloadFromServer() {
// Perform a sync using SyncHelper
if (mSyncHelper == null) {
mSyncHelper = new SyncHelper(this);
}
// Dummy SyncResult object, we can use this for detecting issues
// at some point.
SyncResult syncResult = new SyncResult();
try {
mSyncHelper.performSync(syncResult,
SyncHelper.FLAG_SYNC_LOCAL | SyncHelper.FLAG_SYNC_REMOTE);
} catch (IOException e) {
++syncResult.stats.numIoExceptions;
LOGE(Config.LOG_TAG, "Error syncing data for Droidcon London 2013.", e);
}
}
/**
* Queue up the next sync
*/privatevoid queueNextSync() {
Calendar nowCalendar = Calendar.getInstance();
long now = nowCalendar.getTimeInMillis();
long syncInterval;
syncInterval = 30*60*1000;
// And now for some fuzz to make sure all of the ponies don't
// ride over the server together. 15 mins either way is good.
syncInterval += ((new Random().nextInt(30))-15)*60*1000;
}
}