Asynctask的代码结构Android
问题描述:
我想我只是在制作“意大利面代码”。 Perhabs的一些专家可以帮助我为我的解决方案编写更好的代码。以下伪代码将显示我的问题:Asynctask的代码结构Android
我有一些运行时间很长的程序。此过程将显示一个进度条。我使用Asynctasks来实现这一点。这一切工作正常,但我的代码是不是维护了:
我希望把它简单的代码,而无需嵌套代码:
public void onCreate(Bundle savedInstanceState) {
LongrunningTask1();
dosomething1();
LongrunningTask2();
dosomething2();
LongrunningTask3();
dosomething3();
LongrunningTask4();
dosomething4();
}
我的代码以Asynctasks:
public void onCreate(Bundle savedInstanceState) {
new LongrunningTask1().execute("Task1");
}
class LongrunningTask1 extends AsyncTask<String, Void, boolean> {
private Exception exception;
protected RSSFeed doInBackground(String... urls) {
try {
Do;
return true;
} catch (Exception e) {
return null;
}
}
protected void onProgressUpdate(Void... values) {
updateprogressbar();
}
protected void onPostExecute(RSSFeed feed) {
dosomething1();
new LongrunningTask2().execute("Task2");
}
}
class LongrunningTask2 extends AsyncTask<String, Void, boolean> {
similar to LongrunningTask1
protected void onPostExecute(RSSFeed feed) {
dosomething2();
new LongrunningTask3().execute("Task3");
}
}
class LongrunningTask3 extends AsyncTask<String, Void, boolean> {
similar to LongrunningTask2
protected void onPostExecute(RSSFeed feed) {
dosomething3();
new LongrunningTask4().execute("Task4");
}
}
class LongrunningTask4 extends AsyncTask<String, Void, boolean> {
similar to LongrunningTask3
protected void onPostExecute(RSSFeed feed) {
dosomething4();
}
}
我想以避免任何嵌套调用。谁能帮我 ?
Regards
嗨。谢谢你的帮助。当然,在一个线程中执行所有东西会更容易,但是我不需要顺序地执行线程。 ThreadPoolExecutor很适合其他情况。但在我的情况下,我真的很喜欢有一个简单的解决方案,如果有的话。 – 2013-05-09 07:07:27