Yes you can. By using GCM; once the server data changed the server will send a push notification of what has been changed. Or you can use AlarmManager;
Intent intent = new Intent(context,
MyBoradcastReciever.class);
PendingIntent sender = PendingIntent.getBroadcast(context, uid, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) context
.getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, time, sender);
In BroadcastReceiver
new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
TriggerRefresh();
}
};
public static void TriggerRefresh() {
Bundle b = new Bundle();
// Disable sync backoff and ignore sync preferences. In other
// words...perform sync NOW!
b.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
b.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
ContentResolver.requestSync(LNTAccountService.GetAccount(), // Sync
// account
CONTENT_AUTHORITY, // Content authority
b); // Extras
}