考虑我从服务器获取数据并在列表视图中将其发布到UI的情况,但这是一项活动,它永远不会停止。
taskA{ //fetches data over network
if(!update)
fetch();//network operation
}
taskB{//using this data UI is updated at runtime just like feed.
if(update)
show();//UI operation
}
taskA在完成taskB之后首先启动,那时A正在睡觉,反之亦然,现在我面临的问题是:
有人可以建议我设计一下吗?
答案 0 :(得分:2)
AsyncTask
正在为你做这份工作。您可以将其作为Activity
主类下的内部类。
http://developer.android.com/reference/android/os/AsyncTask.html
示例代码
private class YourTask extends AsyncTask<URL, Integer, String> {
protected String doInBackground(URL... urls) {
// Fetch Data (Task A)
return "Result";
}
protected void onProgressUpdate(Integer... progress) {
// Show progress
}
protected void onPostExecute(String result) {
// Show UI after complete (Task B)
}
}
答案 1 :(得分:0)
AsyncTask
正是您正在寻找的。查看此链接以获取一些示例代码:
http://geekjamboree.wordpress.com/2011/11/22/asynctask-call-web-services-in-android/
答案 2 :(得分:0)
您也可以使用IntentService查看一些sample code
Android服务很轻巧,但设置起来比较复杂。
AsyncTask非常简单但不推荐,因为它有许多缺点和缺陷。 您也可以查看Loaders,但这并不像AsyncTasks那么容易。