I am using a offline task for that I have to call Webservice
in backgourd in every 5 mintus. So I am using AlarmManager
for it.
First time AlarmManager
fire onTime(after 5 min of start), but after than it fire in evry seconds, i don't know why?
I want fire AlarmManager in every 5 min only...
Please help..
This is the code for start timer..
public void startOfflineDateAlarm() {
//* For Start Offline Sync Timer*//
Intent intentAlarm = new Intent(this, AlarmReceiver.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, Constant.offlineDataAlarmTime,
PendingIntent.getBroadcast(this, 1, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
Log.e(TAG, "ALARM START");
saveOfflineTables(getApplicationContext());
}
And this is the BroadcastReceiver
where I am doing my task for call Webservices
.
I have also added code for start AlarmManager
in BroadcastReceiver
for start AlarmManager again for next 5 min.(If am wrong for that please correct me.)
public class AlarmReceiver extends BroadcastReceiver {
String TAG = "AlarmReceiver";
public static PendingIntent pendingIntent;
public static AlarmManager alarmManager;
@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG, "ALARM CLICKED");
//* For Start Offline Sync Timer*//
Intent intentAlarm = new Intent(context, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(context,1, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,Constant.offlineDataAlarmTime, pendingIntent);
saveOfflineTables(context);
syncOfflineDataWithServer(context);
}
private void saveOfflineTables(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences("SFAData", MODE_PRIVATE);
String screenCheck = sharedPreferences.getString("CheckScreen", "");
String userId = sharedPreferences.getString("id", Constant.DEFAULT);
String storeCode = sharedPreferences.getString("store_code", DEFAULT);
String storeId = sharedPreferences.getString("store_ID", DEFAULT);
Log.e(TAG, "saveOfflineTables");
OfflineDataSave.saveItemList(context, userId);
OfflineDataSave.savePromotionList(context, storeId);
OfflineDataSave.saveSubCategoryList(context,userId);
OfflineDataSave.saveSubSubCategoryList(context,userId);
OfflineDataSave.saveDistributorList(context, userId);
OfflineDataSave.saveStoreList(context, userId);
OfflineDataSave.saveBAList(context, userId);
OfflineDataSave.saveCustomerList(context, userId);
OfflineDataSave.saveDailyTask(context, userId);
OfflineDataSave.saveTargetVsAchievement(context, userId);
}
private void syncOfflineDataWithServer(Context context){
DataSyncWithServer.syncAttendance(context);
DataSyncWithServer.syncCounterHygiene(context);
DataSyncWithServer.syncCompetition(context);
DataSyncWithServer.syncCustomerRegistration(context);
DataSyncWithServer.syncMakeOver(context);
DataSyncWithServer.syncCustomerFeedback(context);
DataSyncWithServer.syncTrackingData(context);
DataSyncWithServer.syncSalesInvoice(context);
DataSyncWithServer.syncSalesReturnInvoice(context);
DataSyncWithServer.syncPurchaseReturnInvoice(context);
DataSyncWithServer.syncStockTakeInvoice(context);
DataSyncWithServer.syncOrderManagementInvoice(context);
DataSyncWithServer.syncTesterManagementInvoice(context);
}
}
public void startOfflineDateAlarm() {
//* For Start Offline Sync Timer*//
Intent intentAlarm = new Intent(this, AlarmReceiver.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
/*alarmManager.set(AlarmManager.RTC_WAKEUP, Constant.offlineDataAlarmTime,
PendingIntent.getBroadcast(this, 1, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
*/
Log.e(TAG, "ALARM START");
long firstRunTime = calendar.getTimeInMillis();
long futureInMillis = 5 * 60 * 1000; //Repeat after 5 min
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
firstRunTime,
futureInMillis,
intentAlarm);
saveOfflineTables(getApplicationContext());
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.