JavaFX AsyncTask: Um jeito fácil de manusear threads com JavaFX
Tecnologia

JavaFX AsyncTask: Um jeito fácil de manusear threads com JavaFX


Minha primeira aplicação profissional foi um aplicativo JavaFX que deveria se comunicar com um servidor remoto e fazer operações normais como login, requisições, downloads de arquivos e etc. Foi aí que eu comecei a descobrir o mundo das threads e quão complicado ele é.

Em aplicações web é muito comum que as principais operações de concorrência sejam controladas pelo servidor de aplicação, o que ocorre em aplicações desktop e mobile é diferente, você mesmo deve gerenciar todas as suas threads inclusive a de User Interface.

No android por exemplo, é proibido realizar operações de requisição web na thread principal pois como existe a latência na rede, a espera pela resposta pode fazer com que a thread principal trave e a aplicação pare de responder. Para isso eles criaram uma classe chamada AsyncTask que nada mais é de uma classe que deve ser herdada e seus três métodos principais implementados para abstrair o problema de gerenciamento de threads.

Após experienciar alguns problemas parecidos na minha aplicações JavaFX (você pode ver no Stack Overflow aqui, aqui e aqui) eu resolvi implementar algo parecido com o que o android disponibilizava para o JavaFX.

Como funciona??

A AsyncTask é uma classe com 4 métodos abstratos:
  1. onPreExecute - Esse método é executado pela UI thread e deve ser utilizado para rodar rotinas antes de sua tarefa background ser iniciada. Por exemplo, informar ao usuário que um download irá ser iniciado.
  2. doInBackground - Esse método é onde a operação será de fato realizada em outra thread, sem travar a UI.
  3. onPostExecute - Esse método é executado pela UI thread logo após sua rotina que foi executada em background acabar. Serve, por exemplo, para informar ao usuário uma mensagem de sucesso ou erro.
  4. progressCallback - Se for necessário mostrar o progresso durante a tarefa, esse método deve implementar o callback que atualiza a UI com informações pro usuário, por exemplo, incrementando uma barra de progresso.

Existem ainda outros 4 métodos:
  1. publishProgress - É o método que irá chamar o progressCallback, normalmente implementado dentro de um laço para poder publicar o progresso da tarefa.
  2. setDaemon - É usado para setar se a thread é daemon ou não, ou seja, se ela irá morrer junto com o termino da aplicação ou não. Deve ser usada antes do método execute;
  3. execute - É o método que iniciará todo o processo.
  4. interrupt - Usado para interromper a thread

Vocês podem baixar, e contribuir na página do JavaFX AsyncTask no GitHub 



loading...

- Barreiras De Mercado De Ti Para Desenvolvedores: Como Se Diferenciar.
Depois de muito tempo eu volto a escrever inspirado por um podcast do Murilo Gun que ouvi hoje. Segue abaixo o link pra se algum de vocês quiser escutar antes de iniciar o papo: Logo no início do Podcast o Murilo fala sobre uma empresa que ele teve...

- Android, Ios: Como Detectar E Corrigir Crashes Do Meu Aplicativo? Crashlytics
Apesar de testarmos nossos aplicativos inúmeras vezes, ao coloca-los na loja eles podem apresentar potenciais crashes e prejudicar a usabilidade do usuário. Muitas vezes isso pode acontecer pela configuração do hardware do device do cliente ou simplesmente...

- Tv Digital No Brasil: Uma Metodologia Prática Para O Desenvolvimento De Aplicações Interativas Utilizando Ginga-ncl
Dessa vez apresento a vocês meu trabalho de graduação, que teve como foco principal o desenvolvimento de aplicações para a nova TV Digital brasileira. É um trabalho de conteúdo muito técnico, especialmente para programadores ou pessoas com habilidades...

- Anel Que Vira Fone Bluetooth
Imagine receber um telefonema em seu anel, retirá-lo de seu dedo e usá-lo como um fone bluetooth para atender a chamada? Este é o conceito do The Orb, um OLED – sigla para Organic Light-Emitting Diode ("Diodo orgânico emissor de luz")...

- Seguindo A Linha "fim Dos Tempos" Designers Apresentam O Aqua, Um Carro Para O Mundo Inundado
Os designers Sungchul Yang e Woonghee Han da Universidade de Seoul acreditam que o futuro da humanidade é viver em um planeta inundado pela água e, pensando nisto, criaram o Aqua, um veículo aquático conceitual muito interessante que funciona como...



Tecnologia








.