Android Proguard, удаление всех операторов Log и слияние пакетов

Проблема

Проблема связана с обработкой долговременной задачи в прикладном потоке JavaFX вместо фонового потока.

Решение

Переместить обработку в новую задачу и запустить задачу нажатием кнопки.

Task task = new Task() {
     @Override 
     protected Integer call() throws Exception {
          try {
             Process p = pb.start();
             BufferedReader stdInput = new BufferedReader(new
             InputStreamReader(p.getInputStream()));
             // read the output from the command
             while((line=stdInput.readLine())!=null){
                  System.out.println(line);
                  // To update the textarea
                  updateMessage(line);
             }
          }
          catch (Exception e1) {
             e1.printStackTrace();
          }
     }
};

Внутри обработчика:

Thread th = new Thread(task);
th.setDaemon(true);
th.start();

Текстовое поле, вы можете связать его как

textarea.textProperty().bind().(Bindings.concat(textArea.getText()).concat(task.messageProperty()));

Для получения дополнительной информации перейдите в Параллельность в JavaFX .

NB Написал код «на лету». Может содержать опечатки.

21
задан Macarse 25 August 2011 в 14:14
поделиться