Я использовал вкладки на экране.Каждая вкладка имеет свои данные JSON для чтения.Поэтому я использовал метод ConnectionRequest на каждой вкладке.Следовательно, произошло то, что все методы connectionRequest выполняются одновременно, а приложение работает очень медленно.Что мне нужно, так это то, что конкретные данные json анализируются при выборе соответствующей вкладки, так что анализируется только требуемый json.Поэтому я использовал addSelectionListener, чтобы connectionRequest для анализа данных json читался только при открытии конкретной вкладки.Однако, когда экран читается сначала, отображается пустой экран.Если вкладка выбрана, то она работает.Хранение кода вне addSelectionListener заставляет запускаться все запросы соединения каждой вкладки одновременно, чего я не хочу.Как я могу решить эту проблему?
Мне нужно вернуться на определенную вкладку, когда выполняется резервное копирование с определенного экрана.Тогда эта проблема видна и там.ConnectionRequest не запускается.
Tabs tabs = new Tabs(Component.BOTTOM);
tabs.addTab("Home", calendarIcon, homeContainer);
tabs.addTab("Book", calendarIcon3, quickBookingContainer);
tabs.addTab("Servicing", calendarIcon1, servicingContainer);
tabs.addTab("History", calendarIcon2, serviceHistoryContainer);
add(BorderLayout.CENTER, tabs);
tabs.addSelectionListener((int oldSelected, int newSelected) -> {
if (newSelected == 0) {
//connectionRequest for parsing json data
homeContainerRequest(homeContainer, res);
} else if (newSelected == 1) {
quickBookingContainerRequest(quickBookingContainer, res);
} else if (newSelected == 2) {
serviceRequest(serviceContainer, res);
} else if (newSelected == 3) {
serviceHistoryRequest(serviceHistoryContainer, res);
}
});
public void homeContainerRequest(Container homeContainer, Resources res){
ConnectionRequest con = new ConnectionRequest(url, false) {
@Override
protected void readResponse(InputStream input) throws IOException {
JSONParser jp = new JSONParser();
Map parser = jp.parseJSON(new InputStreamReader(input));
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
}
};
con.setFailSilently(true);
con.addRequestHeader("accept", "application/json");
NetworkManager.getInstance().addToQueue(con);
}
public void quickBookingContainerRequest(Container quickBookingContainer, Resources res){
ConnectionRequest con = new ConnectionRequest(url1, false) {
@Override
protected void readResponse(InputStream input) throws IOException {
JSONParser jp = new JSONParser();
Map parser = jp.parseJSON(new InputStreamReader(input));
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
}
};
con.setFailSilently(true);
con.addRequestHeader("accept", "application/json");
NetworkManager.getInstance().addToQueue(con);
}
public void serviceHistoryRequest(Container serviceHistoryContainer, Resources res){
ConnectionRequest con = new ConnectionRequest(url2, false) {
@Override
protected void readResponse(InputStream input) throws IOException {
JSONParser jp = new JSONParser();
Map parser = jp.parseJSON(new InputStreamReader(input));
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
}
};
con.setFailSilently(true);
con.addRequestHeader("accept", "application/json");
NetworkManager.getInstance().addToQueue(con);
}