|
|
|
@ -240,7 +240,6 @@ public class MpMasterService extends Service {
|
|
|
|
|
intentFilter = new IntentFilter(SimUtil.SMS_SEND_ACTION);
|
|
|
|
|
registerReceiver(mSmsSnedReceiver, intentFilter);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
|
|
|
|
|
|
|
|
|
|
// startMaster(false);
|
|
|
|
@ -553,40 +552,35 @@ public class MpMasterService extends Service {
|
|
|
|
|
timeout = mQuickHeartbeatDuration;
|
|
|
|
|
registerHeartbeatTimer(SystemClock.elapsedRealtime() + timeout * 1000);
|
|
|
|
|
} else {
|
|
|
|
|
long closestTime = 0;
|
|
|
|
|
long closestTime = -1;
|
|
|
|
|
if (mAbsHeartbeatTimes != null && mAbsHeartbeatTimes.length > 0) {
|
|
|
|
|
long currentTimeMillis = System.currentTimeMillis();
|
|
|
|
|
long heartTimeMills = currentTimeMillis + timeout * 1000;
|
|
|
|
|
|
|
|
|
|
Date dt = new Date();
|
|
|
|
|
for (int i = 0; i < mAbsHeartbeatTimes.length; i++) {
|
|
|
|
|
int mAbsHeartbeatTime = mAbsHeartbeatTimes[i];
|
|
|
|
|
int hour = mAbsHeartbeatTime / 60;
|
|
|
|
|
int minute = mAbsHeartbeatTime % 60;
|
|
|
|
|
if (hour >= 24) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
long ts = dt.getTime();
|
|
|
|
|
ts -= ts % 1000;
|
|
|
|
|
|
|
|
|
|
dt.setHours(hour);
|
|
|
|
|
dt.setMinutes(minute);
|
|
|
|
|
dt.setSeconds(0);
|
|
|
|
|
dt.setHours(0);
|
|
|
|
|
dt.setMinutes(0);
|
|
|
|
|
dt.setSeconds(0);
|
|
|
|
|
|
|
|
|
|
long selecttime = dt.getTime();
|
|
|
|
|
if (selecttime > currentTimeMillis && selecttime < heartTimeMills) {
|
|
|
|
|
closestTime = selecttime;
|
|
|
|
|
long zeroPoint = dt.getTime();
|
|
|
|
|
zeroPoint -= zeroPoint % 1000;
|
|
|
|
|
|
|
|
|
|
long offsetTs = (ts - zeroPoint) / 1000;
|
|
|
|
|
for (int i = 0; i < mAbsHeartbeatTimes.length; i++) {
|
|
|
|
|
if (mAbsHeartbeatTimes[i] >= offsetTs) {
|
|
|
|
|
closestTime = mAbsHeartbeatTimes[i];
|
|
|
|
|
break;
|
|
|
|
|
} else {
|
|
|
|
|
if (i == (mAbsHeartbeatTimes.length - 1)) {
|
|
|
|
|
closestTime = heartTimeMills;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (closestTime > 0) {
|
|
|
|
|
registerAbsHeartbeatTimer(closestTime);
|
|
|
|
|
if (closestTime == -1) {
|
|
|
|
|
// next day
|
|
|
|
|
closestTime = mAbsHeartbeatTimes[0] + 86400;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
registerAbsHeartbeatTimer(zeroPoint + closestTime * 1000);
|
|
|
|
|
} else {
|
|
|
|
|
registerHeartbeatTimer(SystemClock.elapsedRealtime() + timeout * 1000);
|
|
|
|
|
registerHeartbeatTimer(System.currentTimeMillis() + timeout * 1000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|