package org.tecrash.crashreport;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import com.path.android.jobqueue.JobManager;
import org.tecrash.crashreport.util.Logger;
import org.tecrash.crashreport.util.Util;
/**
* Created by xujingjie on 15/7/8.
*/
public class UptimeAlarmService extends Service {
private static final String TAG="UptimeAlarmService";
private JobManager jobManager;
private AlarmManager am;
private static Logger logger = Logger.getLogger();
@Override
public void onCreate() {
this.jobManager = ReportApp.getInstance().getJobManager();
this.am=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
jobManager.addJob(new UptimeJob());
logger.d(TAG+" is running " + System.currentTimeMillis());
long workTime = System.currentTimeMillis()+ Util.getUptimesInterval();
setAlarm(workTime);
return START_NOT_STICKY;
}
private void setAlarm(long updateTime) {
Intent updateIntent = new Intent(ReportApp.getInstance(),UptimeAlarmService.class);
PendingIntent sendIntent = PendingIntent.getService(ReportApp.getInstance(),0,updateIntent,PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC, updateTime, sendIntent);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}