0

考虑一下我从服务器获取数据并在说列表视图中将其发布到 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 正在睡觉时开始,反之亦然,现在我面临的问题是:

  1. 两个操作都必须在工作线程中
  2. 这两个操作都在循环中进行,直到活动还活着。
  3. 如果处理程序用于将 UI 操作发布到主线程,则 taskB 似乎停止。

谁能给我建议一个设计来让它工作?

4

3 回答 3

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)
     }
}
于 2012-07-10T09:25:23.783 回答
0

你也可以使用IntentService你可以检查一些示例代码

Android 服务是轻量级的,但设置起来更复杂。

AsyncTask 非常简单,但不推荐,因为它有很多缺点和缺陷。您也可以查看Loaders,但它不像 AsyncTasks 那样简单。

于 2013-04-22T20:06:25.423 回答
0

AsyncTask就是你要找的。查看此链接以获取一些示例代码: http: //geekjamboree.wordpress.com/2011/11/22/asynctask-call-web-services-in-android/

于 2012-07-10T09:28:04.650 回答