/// <summary> /// 构造配置(如果没有的话) /// </summary> public void makeConfig() { if (config == null) { config = ActivityConfig.get(id); } }
/// <summary> /// 重载配置 /// </summary> public void reloadConfig() { config = ActivityConfig.get(id); }
/** 检查单个初始化 */ private void runOnTime(ActivityData data) { ActivityConfig config = ActivityConfig.get(data.id); long nextEnd = config.endTimeT.getNextTime(); long nextStart = config.startTimeT.getNextTime(); bool isRunning; //没有关闭时间 if (config.endTimeT.isEmpty()) { isRunning = true; } else { //已关闭 if (nextEnd == -1L) { isRunning = false; } else { if (nextStart == -1L) { isRunning = true; } else { //根据两个时间差判定开关 isRunning = nextStart > nextEnd; } } } if (data.isRunning != isRunning || data.nextTurnTime == 0) { if (isRunning) { doActivityOpen(data, nextEnd, false); } else { doActivityClose(data, nextStart, false); } } else { long nextTurn = isRunning ? nextEnd : nextStart; //需要计算 if (data.nextTurnTime != nextTurn) { //配置变更 if (data.nextTurnTime == -1) { data.nextTurnTime = nextTurn; } else { long now = me.getTimeMillis(); //之前的时间 if (data.nextTurnTime < now) { //开关一下 if (isRunning) { doActivityClose(data, nextStart, false); doActivityOpen(data, nextEnd, false); } else { doActivityOpen(data, nextEnd, false); doActivityClose(data, nextStart, false); } } else { data.nextTurnTime = nextTurn; } } } } if (data.nextResetTime == 0) { data.nextResetTime = config.resetTimeT.getNextTime(); } else { long nextResetTime = config.resetTimeT.getNextTime(); if (nextResetTime != data.nextResetTime) { //配置变更 if (data.nextResetTime == -1) { data.nextResetTime = nextResetTime; } else { long now = me.getTimeMillis(); if (data.nextResetTime < now) { doActivityReset(data, nextResetTime, false); } } } } }