a
554325746@qq.com
2019-07-15 e6a8bdd23d6f5cb46ac650285829573280edcdf6
app/src/main/java/com/basic/security/fragment/HomeFragment.java
@@ -22,6 +22,7 @@
import org.androidannotations.annotations.UiThread;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -47,6 +48,15 @@
//            homeRestClient.setRootUrl("http://"+ipStr+":8000/data/api-v/realTime");
//        }
    }
    static List<SocketClient> socketClientList = new ArrayList<>();
    public static void startNewSocketClient() {
        System.out.println("启动新连接");
        SocketClient socketClient = new SocketClient(SettingManager.getIpStr(), SettingManager.getPort());
        socketClient.start();
        socketClientList.add(socketClient);
        SystemClock.sleep(10*1000);
    }
    @Background
    public void pullAlarmDataList() {
@@ -54,16 +64,23 @@
        refreshGridView();
        while (true) {
            try{
                Map<String, String> requestBody = new HashMap<String, String>();
                requestBody.put("sec", "15");
                List<Map<String, String>> newRemoteAlarmList = null;
                try {
                    if (localServer) {
                        newRemoteAlarmList = (List<Map<String, String>>)homeRestClient.list1();
                    } else {
                        SocketClient socketClient = new SocketClient(SettingManager.getIpStr(), SettingManager.getPort());
                        socketClient.start();
                    if (1!=1) {
                        startNewSocketClient();
                        break;
                    } else {
                        List<SocketClient> socketClientListToRemove = new ArrayList<>();
                        for (SocketClient socketClient1 : socketClientList) {
                            if (System.currentTimeMillis() - socketClient1.lastUpdateTime > 1000*60*2) {
//                                socketClient1.closeSocket();
                                socketClient1.interrupt();
                                socketClientListToRemove.add(socketClient1);
                            }
                        }
                        socketClientList.removeAll(socketClientListToRemove);
                        if (socketClientList.size() == 0) {
                            startNewSocketClient();
                        }
                    }
                } catch (Exception e) {
                    System.out.println("pullAlarmDataList, " + e.getMessage());
@@ -71,7 +88,7 @@
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                SystemClock.sleep(8000);
                SystemClock.sleep(3000);
            }
        }
    }