package cn.com.basic.face.service.sync; import java.util.Date; import cn.com.basic.face.base.BaseApplication; import cn.com.basic.face.service.sync.down.AttendanceDownSync; import cn.com.basic.face.service.sync.down.CompanyDownSync; import cn.com.basic.face.service.sync.down.DepartmentDownSync; import cn.com.basic.face.service.sync.down.DeviceDownSync; import cn.com.basic.face.service.sync.down.DictionaryDownSync; import cn.com.basic.face.service.sync.down.EmployeeDownSync; import cn.com.basic.face.service.sync.down.PhoneCallDownSync; import cn.com.basic.face.service.sync.down.PostDownSync; import cn.com.basic.face.service.sync.down.RegisterDownSync; import cn.com.basic.face.service.sync.down.VisitDetailDownSync; import cn.com.basic.face.service.sync.down.VisitDownSync; import cn.com.basic.face.service.sync.up.AttenderRegisterUpSync; import cn.com.basic.face.service.sync.up.BaseSync; import cn.com.basic.face.service.sync.up.CheckInUpSync; import cn.com.basic.face.service.sync.up.CompanyUpSync; import cn.com.basic.face.service.sync.up.DeviceUpSync; import cn.com.basic.face.service.sync.up.DictionaryUpSync; import cn.com.basic.face.service.sync.up.OfflineSurveillanceUpSync; import cn.com.basic.face.service.sync.up.VisitorRegisterUpSync; public class SyncDownThread extends Thread { BaseSync firstDownSync; public void buildSyncChain() { // down firstDownSync = AttendanceDownSync.getInstance(); CompanyDownSync companyDownSync = CompanyDownSync.getInstance(); DepartmentDownSync departmentDownSync = DepartmentDownSync.getInstance(); DeviceDownSync deviceDownSync = DeviceDownSync.getInstance(); DictionaryDownSync dictionaryDownSync = DictionaryDownSync.getInstance(); EmployeeDownSync employeeDownSync = EmployeeDownSync.getInstance(); PhoneCallDownSync phoneCallDownSync = PhoneCallDownSync.getInstance(); PostDownSync postDownSync = PostDownSync.getInstance(); RegisterDownSync registerDownSync = RegisterDownSync.getInstance(); VisitDetailDownSync visitDetailDownSync = VisitDetailDownSync.getInstance(); VisitDownSync visitDownSync = VisitDownSync.getInstance(); firstDownSync.setNext(companyDownSync); companyDownSync.setNext(departmentDownSync); departmentDownSync.setNext(deviceDownSync); deviceDownSync.setNext(dictionaryDownSync); dictionaryDownSync.setNext(employeeDownSync); employeeDownSync.setNext(phoneCallDownSync); phoneCallDownSync.setNext(postDownSync); postDownSync.setNext(registerDownSync); registerDownSync.setNext(visitDetailDownSync); visitDetailDownSync.setNext(visitDownSync); } Date lastTime = new Date(); @Override public void run() { buildSyncChain(); while (true) { try { Date now = new Date(); double minutes = (now.getTime() - lastTime.getTime())*1.0 / 1000 / 60; if (minutes >= 0.3) { if (BaseApplication.getInstance().networkAvailable()) { firstDownSync.setAllSyncComplete(false); firstDownSync.sync(); lastTime = now; } } else { Thread.sleep(10*1000); } } catch (Exception e) { try { Thread.sleep(10 * 1000); } catch (Exception e2) { e2.printStackTrace(); } e.printStackTrace(); } } } }