Я пытаюсь написать класс Utility, который помогает выполнить задачу в отдельном потоке, предоставляя возможность что-то сделать перед задачей начинается, и что-то после завершения задачи.Пытается написать класс, который позволяет что-то сделать до начала Thread и после завершения Thread.
Нечто подобное AsyncTask
Вот такой класс андроида.
class MySync
{
public void preExecute() {}
public void executeInBackground() {}
public void postExecute() {}
public final void execute()
{
threadExecute.start();
}
private final Thread threadExecute = new Thread()
{
@Override
public void run()
{
try
{
MySync.this.preExecute();
MySync.this.executeInBackground();
MySync.this.postExecute();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
};
}
Вот как этот класс предполагается использовать. Потребитель класса переопределит методы в соответствии с требованием.
class RegisterStudent extends MySync
{
@Override
public void preExecute()
{
System.out.println("Validating Student details. Please wait...");
try
{
Thread.sleep(2000);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
@Override
public void executeInBackground()
{
System.out.println("Storing student details into Database on Server. Please wait...");
try
{
Thread.sleep(4000);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
@Override
public void postExecute()
{
System.out.println("Student details saved Successfully.");
}
}
И, наконец, начинает задание:
public class AsyncDemo
{
public static void main(String... args)
{
new RegisterStudent().execute();
}
}
Это, кажется, работает хорошо. Мой вопрос в том, является ли это правильным способом достижения цели, как указано в названии? Любые предложения о том, как это можно реализовать?
Возможный дубликат [Как один реализовать по-настоящему асинхронной Java нить] (http://stackoverflow.com/questions/2676687/how-does- one-implement-a-really-asynchronous-java-thread) –
Я чувствую, что это относится к [Обзор кода] (http://codereview.stackexchange.com/) –