Sto provando a riprodurre la stessa logica che AsyncTask di Android segue nel codice puro Java.Come riprodurre AsyncTask da Android in Java codice puro
Per fare ciò ho creato la classe astratta AsyncTask che implementa il mio IAsynTask che fondamentalmente chiama onPreExecute, doInBackground e onPostExecute, inoltre ho creato il metodo execute dove avviene la magia.
Quindi, per utilizzarlo nel mio processo di login, ad esempio, ho creato la classe LoginTask che estende AsyncTask, ma a differenza di quanto avevo immaginato l'implementazione di onPreExecute, doInBackground e onPostExecute non sembrano obbligatori. Che cosa sto facendo di sbagliato?
Inteface:
public interface IAsyncTask {
public void onPreExecute();
public void doInBackground();
public void onPostExecute();
}
Classe:
public abstract class AsyncTask implements IAsyncTask{
public void onPreExecute() {
}
public void doInBackground(){
}
public void onPostExecute() {
}
public void execute() {
onPreExecute();
new Thread(new Runnable() {
@Override
public void run() {
doInBackground();
Platform.runLater(new Runnable() {
@Override
public void run() {
onPostExecute();
}
});
}
}).start();
}
}
[Modificato]
Con le mie domande su JavaFX Ho notato che molti sviluppatori più recenti si trovano ad affrontare problematiche gestione Fili. Vorrei condividere ciò che ho fatto per semplificare la mia vita sulla gestione dei thread su javafx. Ho creato una classe AsyncTask basata su AsyncTask di Android che fondamentalmente fa la stessa cosa di Android in modo umile ma efficace. È possibile trovare ulteriori informazioni su di esso su Github project
Perché non vedi le fonti di Android? – azizbekian
Android è open source, puoi solo andare a copiare il codice ... – Karakuri
Eccolo: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/ 4.2.2_r1/android/os/AsyncTask.java/ –