android中的异步任务

时间:2014-06-05 09:36:41

标签: android android-asynctask

我是android新手,我已经构建了一个使用大量Web服务的应用程序。我正在使用异步任务doInBackground()方法来调用webservices。

我的asyntask类是public,它是在一个单独的文件中编写的。 我没有使用onPostExecute来进行postwebservice操作, 相反,我正在创建一个字符串并返回。 然后在我的活动类中,我正在检查字符串并使用java bean打包数据。

因为异步任务以异步方式运行,所以依赖doInBackground方法返回是正确的。或者是否必须在onPostExecute中执行我的后期web服务操作。

请指导我为我的项目做正确的事情。感谢。

2 个答案:

答案 0 :(得分:0)

您应该在onPostExecute中完成所有后期web服务工作,因为此方法在主线程(UI)中执行,因此您可以更新UI。

查看http://developer.android.com/reference/android/os/AsyncTask.html

一个基本的例子(取自文档)

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
 protected Long doInBackground(URL... urls) {
     // Here you call your webservice and return the result
     return totalSize;
 }

 protected void onPostExecute(Long result) {
     // The result from doinbackground is passed as an argument
     // here, so you update your UI from this method.
 }
 }

作为kaushik您还可以使用已定义的回调重用Asyntask,请检查以下问题:

答案 1 :(得分:0)

创建Interface和回调方法以访问AsyncTask类。

  1. 使用Activity
  2. Context访问AsyncTaskConstructorAsyncTask
  3. onPostExecute中使用,将结果发送到您的Activity 回调方法

  4. 教程

    1。http://samir-mangroliya.blogspot.in/p/android-seperate-asynctask-class.html 2。http://www.androidsnippets.com/asyntask-in-android

    3。http://www.brighthub.com/mobile/google-android/articles/82805.aspx