Android 1.5
SDK引入了一个新类AsyncTask,该类旨在使在后台线程上运行的任务并使结果与UI线程的通信更加简单。Android开发者博客中给出的示例给出了有关如何使用它的基本思想:
public void onClick(View v) { new DownloadImageTask().execute("http://example.com/image.png");}private class DownloadImageTask extends AsyncTask { protected Bitmap doInBackground(String... urls) { return loadImageFromNetwork(urls[0]); } protected void onPostExecute(Bitmap result) { mImageView.setImageBitmap(result); }}doInBackgroundThread在单独的线程(由线程池管理
ExecutorService)上调用该方法,并将结果传递给
onPostExecute在UI线程上运行的方法。你可以叫
cancel(booleanmayInterruptIfRunning)上你的
AsyncTask子类来取消正在运行的任务。
至于使用
java.net或
org.apache.http库进行网络访问,则取决于您。我发现在
java.net尝试发出a
GET和读取结果时,这些库使用起来很安静。这些
org.apache.http库将使您几乎可以做任何您想做的事情
HTTP,但是它们使用起来可能会有点困难,我发现对于简单的
GET请求,它们的性能不佳(在Android上)。



